| 屬性名 | 默認值 | 描述 |
| message.send.max.retries | 3 | 設置當生產者向代理發信息時,若代理由於各種原因導致接 受失敗,生產者在丟棄該消息前進行重試的次數。 |
| retry.backoff.ms | 100 | 在生產者每次重試之前,生產者會更新主題的 MetaData 信息, 以此來檢測新的 Lea er 是否己選舉出來。因為選舉 Leader需要一定時間 ,所以此選項指定更新主題的 MetaData 之前生產 者需要等待的時間,單位為 ms。 |
| queue.buffering.max.ms | 1000 | 在異步模式下 表示消息被緩存的最長時間,單位為 ms ,當 到達該時間后消息將開始批量發送,若在異步模式下同時配 置了緩存數據的最大值 batch num.messages ,則達到這兩個闕值之一都將開始批量發送消息。 |
| queue.buffering.max.messages | 10000 | 在異步模式下,在生產者必須被阻塞或者數據必須丟失之前, 可以緩存到隊列中的未發送的最大消息條數,即初始化消息 隊列的長度。 |
| batch.num.messages | 200 | 在異步模式下每次批量發送消息的最大消息數 |
| request. timeout.ms | 1500 | 當需要 acks 時, 生產者等待代理應答的超時時間,單位為 ms 若在該時間范圍內還沒有收到應答,則會發送錯誤到客戶端。 |
| send.buffer.bytes | 100kb | Socket 發送緩沖區大小 |
| topic.metadata.refresh.interval.ms | 5min | 生產者定時請求更新主題元數據的時間間隔。若設置為 0,則 在每個消息發送后都去請求更新數據 |
| client.id | console-producer | 生產者指定的一個標識字段,在每次請求中包含該字段,用來追 蹤調用,根據該字段在邏輯上可以確認是哪個應用發出的請求 |
| queue.enqueue.timeout.ms | 2147483647 | 該值為0表示當隊列沒滿時直接入隊 滿了則立即丟棄,負數表示無條件阻塞且不丟棄,正數表示阻塞達到該值時長后 拋出 QueueFul!Exception 異常 |
| 屬姓名 | 默認值 | 描述 |
| group.id | / | 消費組 id ,新版本消費者必須由客戶端指定 |
| client.id | / | KafkaConsumer 對應的客戶端 id ,客戶端可以不指定, Kafka 會自 動生成一個 clientld 字符串 |
| key.deserializer | / | 消息的 Key 反序列化類,需要實現 org.apache.ka fka.common.seria lization.Deserializer 接口 |
| value.deserializer | / | 消息的 Value 反序列化類,需要實現 org.apache.ka f ka.common. serialization.Deserializer 接口 |
| enable.auto.commit | true | 是否開啟自動提交消費偏移量 |
| max.poll.records | 500 | 一次拉取消息的最大數量 |
| max.poll.interval.ms | 300000 ms | 當通過消費組管理消費者時,該配置指定拉取消息線程最長空閑時間,若超過這個時間間隔還沒有發起 poll 操作,則消費組認為 該消費者己離開了消費組,將進行平衡操作 |
| send.buffer.bytes | 128 KB | Socket 發送消息緩沖區大小 |
| receive.buffer.bytes | 64 KB | Socket 接收消息緩沖區大小 |
| fetch.min.bytes | 1 | 一次拉取操作等待消息的最小字節數 |
| fetch.max.bytes | 50 MB | 一次拉取操作獲取消息的最大字節數 |
| session.timeout.ms | 10000 ms | 與ZooKeeper 會話超時時間,當通過消費組管理消費者時,如果 在該配置的時間內組協調器沒有收到消費者發來的心跳請求,則 協調器會將該消費者從消費組中移除 |
| request.timeout.ms | 305000 ms | 客戶端發送請求后等待回應的超時時間 |
| heartbeat.interval.ms | 3000 ms | 發送心跳請求的時間間隔 |
| auto.commit.interval.ms | 5000 ms | 自動提交消費偏移量的時間間隔 |
| fetch.max.wait.ms | 500 ms | 若是不滿足 fetch.min )吃es 時,客戶端等待請求的最長等待時間 |
ConsumerConfig :消費者級別的配置,將相應配置傳遞給其他組件。
SubscriptionState :維護了消費者訂閱和消費消息的情況 該類定義了 系列用於保存 訂閱信息的字段,主要宇段描述如下。
subscription :用來保存客戶端通過 KafkaConsumer subscribeO方法所訂閱的主題列表
subscribedPattem :用來保存通過模式匹配訂閱主題的模式。
user Assignment:用來保存客戶端通過 KafkaConsumer.assignO方法所訂閱的分區列表
groupSubscription :用來保存該消費者當前訂閱的主題列表
assignment:用來保存消費者對所訂閱的每個主題分區的消費情況
SubscriptionSjate 類內部定義了一個私有的枚舉類型 SubscriptionType ,該枚舉類定義了
消費者訂閱消息的四種模式 其中
NONE表示初始狀態還沒有訂閱任何主題,
AUTO TOPICS 表示按主題名訂閱且由指定的分區分配策略自動進行分區與消費者的 映射,
AUTO PATTERN 表示以正則表達式形式指定消費的主題 ,分區分配方式與 AUTO TOPICS 模式相同,
USER ASSIGNED 表示客戶端指定了消費者消費的分區。
