Kafka學習整理五 Consumer配置

2021-07-12 03:08:02 字數 3711 閱讀 1911

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 ...