【问题标题】:Sending messages to two services simultaneously usind Service Brokers使用服务代理同时向两个服务发送消息
【发布时间】:2010-01-03 07:27:21
【问题描述】:

我可以使用服务代理将消息从一个服务发送到多个服务吗?

有点像

BEGIN DIALOG CONVERSATION @dialog_handle
   FROM SERVICE [SERVICE1]
   TO SERVICE 'SERVICE2',**'SERVICE3'**
   ON CONTRACT [MainContract] 

从语法来看,我认为我们无法做到这一点。有什么办法?

感谢和问候

DEE

【问题讨论】:

  • 另外,如果您发布一些代码(如T-SQL语句),请突出显示代码行并按下编辑器工具栏上的“代码”按钮(101 010)以正确格式化代码作为代码部分 - 这很有帮助!

标签: sql-server service-broker


【解决方案1】:

Service Broker 中没有内置发布-订阅或多播。要将消息发送到多个服务,您必须通过单独的对话框将其显式发送到每个目标。

典型的解决方案是仅从应用程序向充当分发器的服务发送一条消息。分发服务接收此消息并将其副本发送给每个感兴趣的服务(Service2、Service3 等)。这样,应用程序不需要预先知道它需要将消息发送到多少个服务,它只需将其发送到分发服务。

【讨论】:

  • 莱姆斯,谢谢您的回复。我有一个要求,我必须等待所有目标返回(SERVICE1,SERVICE2 ..)。你有什么建议?我应该有一个包含所有对话、消息、发起者、目标的表格,然后在所有消息都来自目标时更新表格。感谢您的跟进
  • 基本上这就像使异步队列的同步
  • 如果不是服务代理还有什么其他方法可以做到这一点,我必须将消息从数据库实例发送到另一个并等待响应。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-14
  • 2021-12-05
  • 1970-01-01
相关资源
最近更新 更多