我有一个kafka制作人和消费者.kafka制作人正在发布一个主题,并且获取数据并完成一些处理。 kafka消费者正在阅读另一个主题,关于主题1的数据处理是否成功,即主题2是成功还是失败消息。现在我开始我的消费者,然后将数据发布到主题1.我想制作生产者和消费者同步,即一旦生产者发布数据,消费者应该读取该数据的成功或失败消息,然后生产者应该继续下一组数据。
答案 0 :(得分:0)
Apache Kafka和发布/订阅消息传递通常寻求通过使用流异步事件来解耦生产者和消费者。您所描述的更像是批处理作业或同步远程过程调用(RPC),其中生产者和消费者显式耦合在一起。标准的Apache Kafka生产者/消费者API不支持此消息交换模式,但您始终可以在使用相关ID,消耗ACK和请求/响应消息的Kafka API之上编写您自己的简单包装器,以使您自己的界面具有行为如你所愿。
答案 1 :(得分:0)
我刚刚开始构建基于kafka的处理环境。
我想模拟某些请求的同步调用 - 我明确地不想要实际的同步调用(否则我不会查看kafka)。
我的想法是以下......
在我实际执行上述内容之前,我并不了解任何细节,但这似乎是可行的。
我感谢任何人提供的任何建设性意见!
答案 2 :(得分:0)
简短回答:你不能那样做,Kafka 不提供这种支持。
长答案: 正如 Hans 解释的那样,发布/订阅消息传递模型使发布和订阅完全不知道彼此,我相信这就是该模型的强大之处。生产者可以生产而不必担心是否有消费者,消费者可以消费而不必担心有多少生产者。
你能做的最接近的是,你可以让你的生产者同步。这意味着您可以等到您的消息被经纪人收到并确认。
如果您想这样做,请在每次发送后刷新。