2017-08-01 204 views
0

我有一个卡夫卡制作人和消费者。卡夫卡制作人正在发布到一个主题,数据被拍摄并完成了一些处理。卡夫卡消费者正在阅读关于是否成功处理来自主题1的数据的另一主题,即主题2具有成功或失败消息。现在Iam开始我的消费者,然后将数据发布到主题1。我​​想让制片人和消费者同步,即一旦生产者发布数据,消费者应该读取该数据的成功或失败消息,然后生产者应该继续下一组数据。制作卡夫卡制作人和消费者同步

回答

0

Apache Kafka和Publish/Subscribe消息一般旨在通过使用流异步事件来分离生产者和消费者。您所描述的更像是批处理作业或同步远程过程调用(RPC),其中生产者和消费者明确地耦合在一起。标准的Apache Kafka生产者/消费者API不支持这种消息交换模式,但是您可以在使用关联ID,消费确认和请求/响应消息的Kafka API之上始终编写自己的简单包装来制作自己的界面如你所愿。

+0

请您给出一个关于如何使其同步的代码示例RPC – codehacker

+0

我可以使卡夫卡监听器睡眠还是等待数据到达? – codehacker

+0

它已经这样做了。当您在侦听器中调用poll()时,您会以毫秒为单位等待数据等待的时间。如果您投票(60000),则会等待最多1分钟的数据。如果数据提前到达,它会提前返回数据。如果在一分钟内没有数据到达,它将等待整整60秒并返回空值。然后你再次投票。这就像在Web应用程序中进行HTTP长轮询,如果你曾经这样做过。 –