Kafka中生產者的配置詳情

2021-09-24 23:31:38 字數 1688 閱讀 9262

引數

預設值描述

producer.type

sync

指定訊息傳送是同步還是非同步。

非同步asyc成批傳送用kafka.producer.ayncproducer, 同步sync用kafka.producer.syncproducer

metadata.broker.list

boker list

使用這個引數傳入boker和分割槽的靜態資訊,如host1:port1,host2:port2, 這個可以是全部boker的一部分

compression.codec

nocompressioncodec

訊息壓縮,預設不壓縮

compressed.topics

null

在設定了壓縮的情況下,可以指定特定的topic壓縮,未指定則全部壓縮

message.send.max.retries

3訊息傳送最大嘗試次數

retry.backoff.ms

300每次嘗試增加的額外的間隔時間

topic.metadata.refresh.interval.ms

600000

定期的獲取元資料的時間。當分割槽丟失,leader不可用時producer也會主動獲取元資料,如果為0,則每次傳送完訊息就獲取元資料,

不推薦。如果為負值,則只有在失敗的情況下獲取元資料。

queue.buffering.max.ms

5000

在producer queue的快取的資料最大時間,僅僅用於非同步。

queue.buffering.max.message

10000

producer 快取的訊息的最大數量,僅僅用於非同步。

queue.enqueue.timeout.ms

-10當queue滿時丟掉,負值是queue滿時block,正值是queue滿時block相應的時間,僅僅用於非同步。

batch.num.messages

200一批訊息的數量,僅僅用於非同步。

request.required.acks

0acks指定必須要有多少個partition副本收到訊息,生產者才會認為訊息的寫入是成功的。

acks=0,生產者不需要等待伺服器的響應,以網路能支援的最大速度傳送訊息,吞吐量高,但是如果broker沒有收到訊息,生產者是不知道的

acks=1,leader partition收到訊息,生產者就會收到乙個來自伺服器的成功響應

acks=all(-1),所有的partition都收到訊息,生產者才會收到乙個伺服器的成功響應,僅僅用於非同步。

request.timeout.ms

10000

確認超時時間

buffer.memory

設定生產者內快取區域的大小,生產者用它緩衝要傳送到伺服器的訊息。

batch.size

傳送到同乙個partition的訊息會被先儲存在batch中,該引數指定乙個batch可以使用的記憶體大小,單位是byte。不一定需要等到batch被填滿才能傳送。

max.in.flight.requests.per.connection

生產者在收到伺服器響應之前可以傳送的訊息個數。

linger.ms

生產者在傳送訊息前等待linger.ms,從而等待更多的訊息加入到batch中。如果batch被填滿或者linger.ms達到上限,就把batch中的訊息傳送出去。

kafka生產者例項配置引數

kafkaproducer中有三個引數是必填的 bootstrap.servers 指定生產者客戶端連線kafka集群所需的broker位址列表,格式為host1 port1,host2 port2,可以設定乙個或多個。這裡並非需要所有的broker位址,因為生產者會從給定的broker裡尋找其它的...

Kafka之生產者

1 方便在集群中擴充套件,乙個topic可以有多個partition組成,而每個partition可以通過調整以適應它所在的機器 2 可以提高併發,因為可以以partition為單位讀寫 我們需要將生產者傳送的資料封裝成乙個producerrecord物件。1 指明partition的情況下,直接將...

kafka 生產者(二)

想要提高生產者的吞吐量可以通過調整一下4個引數來實現 batch.size 批次大小,預設16k linger.ms 等待時間,修改為5 100ms recordaccumulator 緩衝區大小,修改為64m 實現 public class customproducerparameters 關閉資...