首页 > 解决方案 > Azure 服务总线 - 根据消息正文属性向订阅者分派事件 (.net 5 C#)

问题描述

这里使用的技术 stach 是 .net 5 和 C#...在给定的上下文中,我很遗憾在发送系统设置/数据时无法更改任何内容,即无法更改给定的数据结构

我处于使用 Azure 服务总线 (ASB) 的情况,并且我有 1 个主题 (MyTopic),其中收集了许多相同数据结构的相同事件类型。根据他们来自哪里以及谁应该接收信息,他们在消息正文数据中具有不同的值。在给定的上下文中,我可以拥有 0-n 个不同类型的订阅者(服务),即如果事件字段中的数据与某些值匹配,他们会对消息感兴趣。假设消息正文数据模型如下所示...没有要设置的标头主题或标头...在给定的时刻,所有数据都在 message.Body 中,例如:

    {
    "id": "<some id>",
    "topic": "MyTopic",
    "source": "<some source>"
    "subject": "<service type name>:<some value>",
    .
    .
    }

我希望订阅者仅在消息主体主题包含 X 时收到消息,其中 X 可以是服务类型名称......不同服务和服务类型的数量是动态的,所以我不能硬编码任何东西,但订阅者必须通知 ASB(开始时有一些规则)应该向他们发送哪些消息,我已经研究了 SQL 过滤器和相关过滤器,但不明白我是否/如何在 C# 代码中实现上述目标,即评估消息正文属性然后发送...有可能还是我可以通过其他方式实现这一目标?

谢谢你的帮助!

标签: c#azureservicebus

解决方案


推荐阅读