如何解决区分大众运输中的目标消费者
很少有消费者在听一个 Kafka 主题。一条消息有一个参数,通过它可以确定哪个消费者需要消费它。 MassTransit 使用什么机制来实现这样的解决方案?
解决方法
作为 explained in the interoperability documentation,MassTransit 使用 messageType
标头来确定序列化消息正文中存在哪些消息类型。如果没有消息类型,比如使用 RawJson 消息解串器时,它会将消息传递给所有注册的消费者。
现在,对于 Kafka,类型本身是 TopicEndpoint
配置的一部分,因此只有该消息类型被分派到端点。根据序列化(AVRO、Json 等),体验取决于消息类型是否可用。
您当然可以编写自己的解串器,使用该参数来确定消息中包含哪些消息类型,并编写自己的解串器以使用支持的类型正确响应 TryGetMessage<T>
。最好的例子是 JsonConsumeContext
或最近更新的 RawJsonConsumeContext
,它现在支持用于消息识别的传输标头。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。