引數
預設值描述
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 關閉資...