管理转发 (Service Broker)
消息转发使某个 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 选项值的消息。
执行消息转发的实例通常起到两个网络间的桥梁作用。对于此配置,由于两个网络间的所有通信流量都要通过该实例,因此 Service Broker 端点的 MESSAGE_FORWARDING_SIZE 选项可能需要相对大一些。
动态管理视图 sys.dm_broker_forwarded_messages 显示为转发而存储的消息。