![](/img/trans.png)
[英]how to modify message of one kafka topic and send to another kafka topic using 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.