2017-08-01 108 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長輪詢,如果你曾經這樣做過。 –