首页 > 解决方案 > Azure 服务总线订阅。关闭()未按预期工作

问题描述

我有一个横向扩展的应用程序,其中每个实例都连接到同名的 Azure 服务总线订阅。最终结果是只有一个实例可以对任何给定消息采取行动,因为它们都在监听同一个订阅。

有时,应用程序需要将实例置于空闲状态(服务结构 ActiveSecondary 副本)。发生这种情况时,我需要关闭订阅,以便该实例不再接收消息。如果最初有 2 个实例,一旦一个进入空闲状态,所有消息都应该发送到剩余的实例。这很重要,因此所有消息都由正确配置的主实例处理。

当实例空闲时,取消令牌被取消。我有代码监听取消并在最初创建订阅时生成的 SubscriptionClient 上调用 Close()。

问题是,即使我在一个实例上调用 Close(),消息仍然在它和主实例之间随机拆分。

我这样做的方式本质上是错误的,还是我的代码中的其他东西导致了这种行为?

标签: c#azure-service-fabricazureservicebus

解决方案


无视这个帖子。结果我在一个实例中使用了两次相同的订阅名称,所以他们在竞争这些事件。close() 函数按预期工作。


推荐阅读