[TOC]
<br >
*****
<br >
# 重要的消費者參數
<br >
fetch.min.bytes
該參數用來配置Consumer在一次拉取請求(調用poll()方法)中能從Kafka中拉取的最小數據量,默認值為1(B)。Kafka在收到Consumer的拉取請求時,如果返回給Consumer的數據量小于這個參數所配置的值,那么它就需要進行等待,直到數據量滿足這個參數的配置大小。可以適當調大這個參數的值以提高一定的吞吐量,不過也會造成額外的延遲(latency),對于延遲敏感的應用可能就不可取了。
<br >
fetch.max.wait.ms
這個參數也和fetch.min.bytes參數有關,如果kafka僅僅參考fetch.min.bytes參數的要求,那么有可能會一直阻塞等待而無法發送響應給Consumer,顯然這是不合理的。fetch.max.wait.ms參數用于指定Kafka的等待時間,默認值為500(ms)。
<br >
max.poll.records
這個參數用來配置 Consumer 在一次拉取請求中拉取的最大消息數,默認值為 500(條),如果消息的大小都比較小,則可以適當調大這個參數值來提升一定的消費速度。
<br >
request.timeout.ms
這個參數用來配置 Consumer 等待請求響應的最長時間,默認值為 30000(ms)。
<br >
metadata.max.age.ms
這個參數用來配置元數據的過期時間,默認值為300000(ms),即5分鐘。如果元數據在此參數所限定的時間范圍內沒有進行更新,則會被強制更新,即使沒有任何分區變化或有新的 broker 加入。
<br >
reconnect.backoff.ms
這個參數用來配置嘗試重新連接指定主機之前的等待時間(也稱為退避時間),避免頻繁地連接主機,默認值為50(ms)。這種機制適用于消費者向 broker 發送的所有請求。
<br >
retry.backoff.ms
這個參數用來配置嘗試重新發送失敗的請求到指定的主題分區之前的等待(退避)時間,避免在某些故障情況下頻繁地重復發送,默認值為100(ms)。
<br >
isolation.level
這個參數用來配置消費者的事務隔離級別。字符串類型,有效值為“read\_uncommitted”和“read\_committed”,表示消費者所消費到的位置,如果設置為“read\_committed”,那么消費者就會忽略事務未提交的消息,即只能消費到LSO(LastStableOffset)的位置,默認情況下為“read\_uncommitted”,既可以消費到HW(High Watermark)處的位置。
<br >