我们正在将apachekafka实现为一个分布式消息传递中间件,它将完全用于异步通信。
我有几个用例,我希望能够向kafka代理发布一条消息,并侦听对该特定消息的回复(就像在rabbitmq中使用correlationid一样)。
我读过apachekafka协议,看起来他们确实在内部使用了相关id。但我在任何地方都找不到任何使用该关联id的示例。
你能告诉我Apache·Kafka有没有办法做到这一点吗?
我们正在将apachekafka实现为一个分布式消息传递中间件,它将完全用于异步通信。
我有几个用例,我希望能够向kafka代理发布一条消息,并侦听对该特定消息的回复(就像在rabbitmq中使用correlationid一样)。
我读过apachekafka协议,看起来他们确实在内部使用了相关id。但我在任何地方都找不到任何使用该关联id的示例。
你能告诉我Apache·Kafka有没有办法做到这一点吗?
1条答案
按热度按时间dauxcl2d1#
这是他们网络通讯协议的一部分。
https://cwiki.apache.org/confluence/display/kafka/a+guide+to+the+kafka+protocol#aguidetothekafkaprotocol-请求
apache-kafka中的相关id
这与用户的请求-应答场景无关。
你应该考虑使用
payload
作为一个correlationKey
跟踪业务请求的业务回复。由于版本2.0(正在开发中),SpringKafka支持ApacheKafka0.11及其头文件支持。所以
payload
黑客攻击你可以用一些标题对此事进行关联。您还可以关注spring集成kafka for gateways支持的进展,其中请求-应答是核心功能。因此,相关性非常重要:https://github.com/spring-projects/spring-integration-kafka/pull/162