kafka retries引數入門

2021-10-17 20:39:45 字數 892 閱讀 1313

生產者從伺服器收到的錯誤有可能是臨時性的錯誤(比如分割槽找不到首領)。在這種情況下,retries引數的值決定了生產者可以重發訊息的次數,如果達到這個次數,生產者會放棄重試並返回錯誤。預設情況下,生產者會在每次重試之間等待100ms,可以通過retry.backoff.ms引數來配置時間間隔。

比如,設定了acks=allmin.insync.replicas=2。由於某種原因,所有follower都掛了,由於min.insync.replicas=2,所以生產者無法收到來自broker端的ack

此時我們會從producer端收到乙個錯誤訊息:「broker: not enough in-sync replicas」。這就意味著kafka不能在broker上追加生產的訊息(資料)了,因為此時的isr的數量不夠。此時在broker端會有如下的錯誤訊息:

org.apache.kafka.common.errors.notenoughreplica***ception:

thesizeofthecurrentisrset(0

) isinsufficienttosatisfythemin.isrrequirementof 2 forpartition

預設情況下,producer不會對此錯誤進行處理,這就會造成訊息丟失,即**at-most-once **語義。我們可以通過配置重試次數來讓生產者重新傳送訊息。比如配置retries=3,預設為0

printf函式引數入棧

char p 10 strcpy p,pek printf s n p printf s s n p,strupr p 其中strupr是轉換大小寫的函式,這裡顯示 pek pek pek 為什麼printf s s n p,strupr p 這裡兩個都是大寫的pek,即使用printf s s n...

python初入江湖 函式引數

預設引數 必選引數放在前面,預設引數放在後面,變化大的引數放在前面,變化小的引數放在後面 defmy pow x,n 2 s 1while n 0 n n 1 s s x return s my pow 3 9my pow 3,3 27def pupil name,gender,age 6,city...

23 引入引數物件

資料參考 概念 本文中的 引入引數物件 是指當乙個方法的引數過多或者過為複雜時,可以考慮把這些引數封裝成乙個單獨的類。正文 如果乙個方法所需要的引數大於5個,理解該方法的簽名就變得比較困難,因為這樣感覺引數很長 樣式不好並且沒有分類,所以我們有必要把引數進行封裝。1 2 註冊類3 4class re...