簡體   English   中英

在kafka java中生成所有消息到主題后如何發送元數據?

[英]How to send Meta data after producing all message to topic in kafka java?

我正在使用 Java Kafka 客戶端庫為 Kafka 主題生成學生詳細信息,我想要的是一旦生成了所有記錄,我想將消息計數與其他一些元數據一起發送到同一個 Kafka 主題。

 List<Student> allStudent;

假設 allStudent 列表的大小是 10

然后,一旦所有學生記錄都生成到該主題,那么我想生成另一條消息,例如:“10 條記錄成功生成到主題”。

“10 條記錄成功生成到主題” - 這應該是要生成的最后一條消息。

Kafka 生產者send()方法返回Future<RecordMetadata> object。 一種選擇是在這個 Future 上調用get()方法。 一旦get()方法返回,就可以確定數據已經寫入 Kafka。 此外,您可能應該為生產者配置耐用性( acks=all設置)。 一旦您的 get 方法返回,您就可以發送確認消息。

我仍然會考慮發送這些確認消息是一種有問題的做法。 它們有什么用?

我不確定真正的商業案例是什么。

但是在 KAFKA 中,我們將這種行為稱為控制消息,它是一種關於先前發送的記錄列表的元數據,用於以后進行對賬,尤其是批處理。 但是控制消息完全由生產者驅動,即生產者應該有一個同步或異步發送的消息計數器,並將控制消息發送到另一個主題,我們稱之為控制主題,消費者訂閱執行之間的增量比較數據主題(事件模式)和控制主題(控制消息模式)。

除此之外,如果我想對代理領導者和副本產生數據有極高的信心,您應該使用acks=all並為復制因子和同步副本參數設置正確的值。

總之,這取決於生產者您希望如何實現這一點,因為 KAFKA 對此沒有具體的實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM