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