首页 文章

Azure Service Bus - 确定活动连接数(主题/队列)

提问于
浏览
2

由于Azure Service Bus将队列或主题的最大并发连接数限制为100,是否有一种方法可用于查询我们的队列/主题以确定有多少并发连接?

我们知道我们可以捕获限制事件,但非常喜欢主动方法,我们可以在系统负载很重时主动增加或减少队列/主题的数量 .

这里的用例是等待回复消息的过程,其中回复来自长时间运行的进程,并且订阅使用关联过滤器来促进发布者和订阅者之间的双向通信 . 因此,我们必须有一个BeginReceive()来等待响应,并且每个这样的Publisher将在其等待时间内消耗连接 . 系统已经在多个主题之间 balancer 负载,但是我们需要一种主动创建主题的方法,这样我们就不会经常受到限制,但同时没有多余的主题用于此目的 .

1 回答

  • 3

    我不相信它目前可能会查询监听器计数 . 我认为订阅者对象也是如此,理论上,如果每个主题最多有2000个订阅者,并且如果每个允许多达100个连接,那么很多可能的连接 . 我们只需要记住,订户是合作的(每个都获得所有消息的副本),子载体上的接收器是竞争性的(只有一个获得它) .

    当您开始运行> 1,000个订阅者时,我还看到了未经证实的性能延迟报告,因此请确保测试此方案 .

    但是......考虑到你的情况,我推断出性能时间可能不是最大的因素(你已经有很长的运行过程) . 因此,在工作流程中引入几秒滞后可能并不重要 . 如果是这种情况,我会将BeginRecieve的超时设置为相当短的时间(几秒钟),并在两次尝试之间保持睡眠/等待延迟 . 这使得其他听众也有机会获得消息 . 我们可能还想考虑一种方法,我们尝试接收多个消息,然后将它们分配给其他进程进行处理(在这种情况下是coorelation?) .

    突出一些想法 .

相关问题