property
default
description
group.id
用來唯一標識consumer程序所在組的字串,如果設定同樣的group id,表示這些processes都是屬於同乙個consumer group
zookeeper.connect
指定zookeeper的連線的字串,格式是hostname:port,此處host和port都是zookeeper server的host和port,為避免某個zookeeper 機器宕機之後失聯,你可以指定多個hostname:port,使用逗號作為分隔:hostname1:port1,hostname2:port2,hostname3:port3可以在zookeeper連線字串中加入zookeeper的chroot路徑,此路徑用於存放他自己的資料,方式:hostname1:port1,hostname2:port2,hostname3:port3/chroot/path
consumer.id
null
不需要設定,一般自動產生
socket.timeout.ms
30*1000
網路請求的超時限制。真實的超時限制是 max.fetch.wait+socket.timeout.ms
socket.receive.buffer.bytes
64*1024
socket用於接收網路請求的快取大小
fetch.message.max.bytes
1024*1024
每次fetch請求中,針對每次fetch訊息的最大位元組數。這些位元組將會督導用於每個partition的記憶體中,因此,此設定將會控制consumer所使用的memory大小。這個fetch請求尺寸必須至少和server允許的最大訊息尺寸相等,否則,producer可能傳送的訊息尺寸大於consumer所能消耗的尺寸。
num.consumer.fetchers
1用於fetch資料的fetcher執行緒數
auto.commit.enable
true
如果為真,consumer所fetch的訊息的offset將會自動的同步到zookeeper。這項提交的offset將在程序掛掉時,由新的consumer使用
auto.commit.interval.ms
60*1000
consumer向zookeeper提交offset的頻率
queued.max.message.chunks
2用於快取訊息的最大數目,以供consumption。每個chunk必須和fetch.message.max.bytes相同
rebalance.max.retries
4當新的consumer加入到consumer group時,consumers集合試圖重新平衡分配到每個consumer的partitions數目。如果consumers集合改變了,當分配正在執行時,這個重新平衡會失敗並重入
fetch.min.bytes
1每次fetch請求時,server應該返回的最小位元組數。如果沒有足夠的資料返回,請求會等待,直到足夠的資料才會返回。
fetch.wait.max.ms
100如果沒有足夠的資料能夠滿足fetch.min.bytes,則此項配置是指在應答fetch請求之前,server會阻塞的最大時間。
rebalance.backoff.ms
2000
在重試reblance之前backoff時間
refresh.leader.backoff.ms
200在試圖確定某個partition的leader是否失去他的leader地位之前,需要等待的backoff時間
auto.offset.reset
largest
zookeeper中沒有初始化的offset時,如果offset是以下值的回應:smallest:自動復位offset為smallest的offsetlargest:自動復位offset為largest的offsetanything else:向consumer丟擲異常
consumer.timeout.ms
-1如果沒有訊息可用,即使等待特定的時間之後也沒有,則丟擲超時異常
exclude.internal.topics
true
是否將內部topics的訊息暴露給consumer
paritition.assignment.strategy
range
選擇向consumer 流分配partitions的策略,可選值:range,roundrobin
client.id
group id value
是使用者特定的字串,用來在每次請求中幫助跟蹤呼叫。它應該可以邏輯上確認產生這個請求的應用
zookeeper.session.timeout.ms
6000
zookeeper 會話的超時限制。如果consumer在這段時間內沒有向zookeeper傳送心跳資訊,則它會被認為掛掉了,並且reblance將會產生
zookeeper.connection.timeout.ms
6000
客戶端在建立通zookeeper連線中的最大等待時間
zookeeper.sync.time.ms
2000
zk follower可以落後zk leader的最大時間
offsets.storage
zookeeper
用於存放offsets的地點: zookeeper或者kafka
offset.channel.backoff.ms
1000
重新連線offsets channel或者是重試失敗的offset的fetch/commit請求的backoff時間
offsets.channel.socket.timeout.ms
10000
當讀取offset的fetch/commit請求回應的socket 超時限制。此超時限制是被consumermetadata請求用來請求offset管理
offsets.commit.max.retries
5重試offset commit的次數。這個重試只應用於offset commits在shut-down之間。
dual.commit.enabled
true
如果使用「kafka」作為offsets.storage,你可以二次提交offset到zookeeper(還有一次是提交到kafka)。在zookeeper-based的offset storage到kafka-based的offset storage遷移時,這是必須的。對任意給定的consumer group來說,比較安全的建議是當完成遷移之後就關閉這個選項
partition.assignment.strategy
range
在「range」和「roundrobin」策略之間選擇一種作為分配partitions給consumer 資料流的策略; 迴圈的partition分配器分配所有可用的partitions以及所有可用consumer 執行緒。它會將partition迴圈的分配到consumer執行緒上。如果所有consumer例項的訂閱都是確定的,則partitions的劃分是確定的分布。迴圈分配策略只有在以下條件滿足時才可以:(1)每個topic在每個consumer實力上都有同樣數量的資料流。(2)訂閱的topic的集合對於consumer group中每個consumer例項來說都是確定的。
備註:從 0.9.0.0版本後,kafkat新增了新的消費者api及對應的consumer配置,有一些較大的變化,這就要求使用對應的kafka-clients(客戶端)版本。
kafka 學習整理
一 什麼是吞吐量 吞吐量是指對網路 裝置 埠 虛電路或其他設施,單位時間內成功地傳送 資料的數量 二 什麼是kafka kafka是一種高吞吐量的分布式發布訂閱訊息系統,可以處理消費者規模的 中的所有動作流資料。簡單大白話理解 舉個例子,生產者生產雞蛋,消費者消費雞蛋,生產者生產乙個雞蛋,消費者就消...
Kafka學習之旅 五 Kafka中的壓縮
kafka 會為我們保留一定量時間的資料那麼為kafka 選擇乙個合適的壓縮演算法是非常重要的,可以在節約儲存空間的同時又將效率影響到最低。在 kafka 中,壓縮可能發生在兩個地方 生產者端和 broker 端。生產者程式中配置 compression.type 引數即表示啟用指定型別的壓縮演算法...
Kafka學習整理一 基礎概念
kafka中包含以下基礎概念 1.topic 話題 kafka中用於區分不同類別資訊的類別名稱。由producer指定 2.producer 生產者 將訊息發布到kafka特定的topic的物件 過程 3.consumers 消費者 訂閱並處理特定的topic中的訊息的物件 過程 4.broker ...