管理转发 (Service Broker)

适用于SQL ServerAzure SQL 托管实例

消息转发使某个 SQL Server 实例可以在两个或多个其他 SQL Server 实例间转发 Service Broker 消息。 管理执行消息转发的 SQL Server 实例时,有一些注意事项。

Service Broker 对转发的消息和传入消息使用数据库中的路由 msdb 。 对用于转发的路由配置进行更改后,必须备份 msdb

SQL Server 将要转发的消息存储在内存中一个称为发送器队列的数据结构中。 终结点选项 MESSAGE_FORWARDING_SIZE 设置 SQL Server 用于存储要转发的消息的最大内存量(以 MB 为单位)。 SQL Server 会根据需要分配用于保存要转发的消息的内存,最高可达此限制。 如果到达的某个消息将导致发送器队列的大小超过此限制,SQL Server 将删除该消息。 但是,如果已分段大型消息,转发实例不会重新组合片段,而是将消息片段转发到目标。 通过这种方式,转发实例可以成功转发大于 MESSAGE_FORWARDING_SIZE 为实例配置的选项的消息。

执行消息转发的实例通常起到两个网络间的桥梁作用。 对于此配置, MESSAGE_FORWARDING_SIZE Service Broker 终结点的选项可能需要相对较大,因为两个网络之间的所有流量都通过实例。

动态管理视图 sys.dm_broker_forwarded_messages 显示存储用于转发的消息。