将消息从多个服务器发送到一个Service Broker Queue
本文关键字:一个 Service Queue Broker 消息 服务器 | 更新日期: 2023-09-27 18:09:22
我有几个SQL服务器,它们的数据库支持两种不同的应用程序。我需要从每个数据库中捕获对类似数据的更改,但要按顺序处理。Service Broker符合要求,我只是有几个实现问题。
我已经创建了"第三个"数据库来扩展这两个应用程序。在这个数据库上,我启用了服务代理,创建了消息模式、契约、服务和队列。
如果我想将这种类型的//mysite.com/extensions/message
消息从LEGACYSERVER.Database
发送到EXTENSIONSERVER.Database
上的ExtensionsQueue
,我是否需要在每个数据库中运行SQL语句来创建这些片段(模式,契约,消息等),我想从这个队列进行通信?看来,我至少需要每个数据库中的消息模式来强制完整性。
假设我需要(这似乎是有意义的),我是否应该将每个服务器上的服务,队列等命名为相同的,或者这会导致问题?例如,我是否应该将EXTENSIONSERVER
上的服务命名为//extensionserver/extensions/message
和//legacyserver/extensions/message
?我甚至需要在LEGACYSERVER
上创建一个服务和队列吗?或者像这样的路由会照顾它吗?
CREATE ROUTE
WITH
SERVICE_NAME = '//extensionserver/extensions/message',
ADDRESS = 'extensionserver:1433'
这实际上是一个相当好的设置。最后,我基本上遵循了这个教程。
它没有提到的一个关键点是外部数据库实例的路由需要在MSDB数据库中。