当前位置: 首页 > 知识库问答 >
问题:

服务总线具有相同订阅的多个侦听器实例不接收消息

苏彭薄
2023-03-14

我有一个5节点集群,每个节点都有一个运行的微服务(这是一个无状态的可靠服务),它正在接收来自Azure服务总线的消息。

因为我只为my_topic(Topic Name)创建了一个my_Subscription(Subscription Name),所以微服务实例是随机接收消息的。

共有1个答案

凌智
2023-03-14

如果您可以让集群节点在启动时创建自己的订阅(这应该不会太难)。可能使用节点的唯一ID作为订阅名称。那么每个节点将只接收自己的消息副本,从而达到您的目的。但是,如果您的节点总是来来去去,那么您就需要实现一些清理机制,以确保过时的订阅不会阻塞Topic的存储。

 类似资料:
  • 我正在使用代码实现Azure服务总线主题,这些主题可以在以下位置找到:https://docs.microsoft.com/en-us/Azure/service-bus-messaging/service-bus-dotnet-how-to-use-topics-subscriptions 我尝试运行订阅者程序的两个实例,它包含以下方法: 但是,这不允许两个订户都接收消息,它接收的消息是两个订户

  • 这似乎是最简单的解决办法。让我们看看流程: 第三方向RESTful API发送请求,以获取Windows Azure服务总线连接字符串-凭据-。 一旦拥有连接字符串,第三方就会连接到Windows服务总线,并开始从某个主题订阅接收消息。注意:连接字符串是在服务器端加密的,只能由接受的客户端解密。 优点 null null 第三方请求一个类似于RESTful的TCP API,以便订阅一些Window

  • 我有一个超时选项,只想在超时前接收消息。 如果您能解释下面的代码是如何工作的,以及我如何修改下面的代码以在特定的时间框架内接收消息,并且一旦我的超时已经到达就停止接收,这将是很有帮助的。

  • 但是,问题还是出现了。我唯一的猜测是,当调用时,同一个实例再次拾取消息? 我想我真正想问的是,如果我有一个主题订阅客户端的多个实例都指向该主题的同一个订阅者,那么所有实例是否都有可能获得消息的副本?还是不保证。

  • 我用来接收消息的代码如下: 当我运行它时得到的是下一个信息: 如果我从线程中运行接收器,它会显示这条错误消息(当跳过该超时时,我应该删除该超时,因为在等待的守护进程中它不能跳过)。基本上都是同样的错误: 更新 我认为问题出在Azure服务总线和订阅和过滤器上。实际上,我有23个过滤器,我认为Azure服务总线只工作于1个订阅:(但我不确定这一点。

  • 有可能做到这一点吗?