如何在Kafka中实现req-resp

时间:2017-06-14 15:21:44

标签: apache-kafka

我们希望在集群环境中使用Kafka实现req-resp。

如何在发送请求的应用服务器节点上实现响应消息传递?例如,IBM MQ为此案例提供了一个消息选择器。 如何在Kafka中实现这一点?

非常感谢。

1 个答案:

答案 0 :(得分:3)

Kafka请求/响应消息交换模式的完成方式与大多数其他消息传递系统相同

http://www.enterpriseintegrationpatterns.com/patterns/conversation/RequestResponse.html

在卡夫卡,有一些限制:

  • API中没有内置的辅助函数来设置相关ID或提取Reply-To地址。您必须将此信息放在消息本身中(即在消息密钥或消息值中),因为Kafka在即将发布的版本0.11之前没有自定义标头
  • 请求和响应在常规Kafka主题上,因此它们是持久的并且在提交日志中。 Kafka中没有临时主题或非持久性消息。这听起来像是一个限制,但你会逐渐喜欢它,因为当所有历史请求和响应都保留用于分析时,它会使调试变得更加容易
  • Kafka没有唯一的客户端收件箱或特殊的每个客户端主题,因此您必须再次使用常规主题或单个主题分区来发送请求和响应消息。