kafka 生產者傳送重試到不同分割槽

2021-10-21 15:24:44 字數 349 閱讀 5862

我這裡的示例,實際就是某個broker不能訪問了,但實際服務是還存在的。當某個訊息傳送失敗時,協議層(kafka的傳送邏輯)的重試邏輯是為這個訊息對上乙個分配的分割槽重試,而不是重新選擇分割槽重試,因為協議層也不確定是不是使用者又這個需求。

那我這裡是希望重新選擇分割槽進行傳送的,所以應該在我的業務層,接收到訊息傳送失敗後,重新對訊息入棧傳送。至於怎麼保證不會再去嘗試同乙個分割槽,這個跟具體的分割槽選擇演算法相關。config.producer.partitioner 決定了用什麼方式再去選擇分割槽。最簡單的是直接使用roundbin演算法。

當業務層也進行了重試,重試若干次仍然失敗後,那基本上能確定是所有的broker都訪問不了了,由業務層進一步去確認該怎麼處理。

Kafka之生產者

1 方便在集群中擴充套件,乙個topic可以有多個partition組成,而每個partition可以通過調整以適應它所在的機器 2 可以提高併發,因為可以以partition為單位讀寫 我們需要將生產者傳送的資料封裝成乙個producerrecord物件。1 指明partition的情況下,直接將...

kafka 生產者(二)

想要提高生產者的吞吐量可以通過調整一下4個引數來實現 batch.size 批次大小,預設16k linger.ms 等待時間,修改為5 100ms recordaccumulator 緩衝區大小,修改為64m 實現 public class customproducerparameters 關閉資...

生產者到topic

順序寫磁碟效率比隨機寫記憶體要高,保障 kafka 吞吐率,關於磁碟順序寫入 producer 傳送訊息到 broker 時,會根據分割槽演算法選擇將其儲存到哪乙個 partition。其路由機制為 1 指定了 patition,則直接使用 2 未指定 patition 但指定 key,通過對 ke...