同一服务总线队列上的不同读者?

Different readers on same service bus queue?

假设我们有 4 种不同类型的消息:Type1、Type2、Type3 和 Type 4。

由于 FIFO 功能的必要性,我们有一个带有会话的服务总线队列。

我们还有两个消息编写器。第一个消息编写器负责创建 type1 和 type2 类型的消息,而 writer #2 负责创建类型 type3 和 type4 的消息。这是简单的部分。

现在我希望能够创建两个阅读器,reader1 和 reader2。

Reader1 必须阅读 type1 和 type2 类型的消息。 Reader2 必须读取 type3 和 type4 类型的消息。

但我不知道如何实现。因为如果 reader1 读取了 type3 的消息,它需要放弃它,因为 reader1 不能只处理类型 type1 和 type2 的消息。在最坏的情况下,reader1 将被消息卡住,直到它被扔到死信队列中。

之所以创建两个不同的阅读器,是因为它们处于两个完全不同的领域,具有完全不同的功能。

如何实现所需的功能?

您需要为此使用服务总线主题和订阅。

作者向主题发布消息。然后两个读者都订阅那个主题,每个订阅都可以根据消息类型进行过滤。

参见 "Topics and subscriptions" in the docs