c# - 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# 代码中实现上述目标,即评估消息正文属性然后发送...有可能还是我可以通过其他方式实现这一目标?
谢谢你的帮助!
解决方案
推荐阅读
- angular - 是否可以在组件上应用角度指令?
- ruby-on-rails - Capybara::ElementNotFound:找不到未禁用的“登录”按钮
- c# - 将 ComboBox 选择事件转换为复选框切换
- python - Keras - 关于输入层节点数量的混淆
- javascript - 谁能解释这段代码是如何工作的?
- pyomo - 访问 pyomo 变量的任何方式
- r - 在两个表中使用组 ID 滚动连接
- python-2.7 - 如何从父任务中清除所有 celery 子任务?
- python - 使用 MultiLabelBinarizer 转换 Keras 预测输出
- node.js - ESP8266 没有连接到我在 heroku 上部署的 websocket