我需要在我的Kafka集群中有一个将获得消息的java模块,并且根据消息的两个字段,它将被丰富并发布到另一个kafka集群。我一直在研究KStream API,但我找不到将事物发送到另一个集群的方法(不使用发布者库)。
任何想法,我该怎么做?
谢谢!
答案 0 :(得分:1)
我需要在我的Kafka集群中有一个将获得消息的java模块,并且根据消息的两个字段,它将被丰富并发布到另一个kafka集群。我一直在研究KStream API,但我找不到将事物发送到另一个集群的方法(不使用发布者库)。
目前,Kafka的Streams API一次只与一个给定的群集进行交互。也就是说,您无法从Kafka集群A读取,然后使用Streams API写入Kafka集群B.
任何想法,我该怎么做?
因此我建议使用Kafka Connect。 Kafka的最新版本包括Kafka Connect中的所谓Single Message Transformations功能,您可以将其用于此类邮件路由。
如果您愿意使用商业工具,Confluent Replicator(docs)允许您执行此类跨群集数据流,如上面提到的Hans Jespersen所述。
一个很好的高级起点将是Ewen Cheslack-Postava的谈话Single Message Transformations Are Not the Transformations You’re Looking For(不要被标题阻止:-P),他是开发新SMT功能的Kafka提交者之一。还有一个blog post简要介绍了Kafka Connect中的SMT。