在 Azure 服务总线主题订阅中保留过滤消息

Keeping filtered messages in azure service bus topic subscriptions

我有一个主题,其中包含一个订阅。订阅具有筛选一组 UserProperties 的筛选器。过滤效果很好。

问题是,如果根据订阅的过滤器检查邮件并且不符合规则,邮件将被删除。有没有办法将消息保留在订阅中而不被删除?

我想要这个的原因是我们让我们的服务在部署时配置订阅规则,并且具有发送一组新消息的消息代理的服务可能会在订阅客户端更改的服务之前部署规则集和新的业务逻辑。我们不想丢失部署期间发送的消息,并在新服务推出时处理它们。

干杯。

正如其他人所提到的,这是设计使然,根据您的要求,您有这些选项

  • 预先创建订阅,这将保留过滤后的消息,并且您的订阅者服务可以在订阅出现时从订阅中获取它们。

  • 在队列上使用 Message Sessions,而不是每个订阅者一个会话。不过,这里的要求是让您的初始部署发送消息,并在这些消息上设置唯一 SessionId(这基本上应该基于您现在拥有的过滤器),而不是稍后使用过滤器