1.acks
- 如果acks=0,生產(chǎn)者在成功寫入消息之前不會(huì)等待任何來自服務(wù)器的響應(yīng)。
- 缺點(diǎn):如果當(dāng)中出現(xiàn)了問題,導(dǎo)致服務(wù)器沒有收到消息,那么生產(chǎn)者就無從得知,消息就丟失了
- 優(yōu)點(diǎn):因?yàn)樯a(chǎn)者不需要等待服務(wù)器的響應(yīng),所有他可以以網(wǎng)絡(luò)能夠支持的最大速度發(fā)送消息,從而達(dá)到很高的吞吐量
- 如果acks=1,只要集群的leader節(jié)點(diǎn)收到消息,生產(chǎn)者就會(huì)收到一個(gè)來自服務(wù)器的成功響應(yīng)
- 如果無法到達(dá)首領(lǐng)節(jié)點(diǎn)(如leader節(jié)點(diǎn)崩潰,新的leader還沒有被選舉出來),生產(chǎn)者會(huì)收到一個(gè)錯(cuò)誤響應(yīng),為避免數(shù)據(jù)丟失,生產(chǎn)者會(huì)重發(fā)消息
- 如果acks=all,只有當(dāng)所有參與復(fù)制的節(jié)點(diǎn)全部收到消息,生產(chǎn)者才會(huì)收到一個(gè)來自服務(wù)器的成功響應(yīng)
- 優(yōu)點(diǎn):最安全,保證不止一個(gè)服務(wù)器收到消息,就算有服務(wù)器發(fā)生崩潰,整個(gè)集群仍可以運(yùn)行
- 缺點(diǎn):延遲比acks=1更高
2.buffer.memory
- 該參數(shù)用來設(shè)置生產(chǎn)者內(nèi)存緩沖區(qū)的大小,生產(chǎn)者用它緩沖要發(fā)送到服務(wù)器的消息。如果應(yīng)用程序發(fā)送消息的速度超過發(fā)送到服務(wù)器的速度,導(dǎo)致生產(chǎn)者空間不足,send()方法調(diào)用要么被阻塞,要么拋出異常
3.compression.type
- 該參數(shù)可以設(shè)置為snappy、gzip、lz4,指定消息被發(fā)送給broker之前使用哪種壓縮算法
4.retries
- 決定生產(chǎn)者可以重發(fā)消息的次數(shù),如果達(dá)到這個(gè)次數(shù),生產(chǎn)者會(huì)放棄重試,并返回錯(cuò)誤
5.batch.size
- 當(dāng)有多個(gè)消息需要被發(fā)送到同一個(gè)分區(qū)時(shí),生產(chǎn)者會(huì)把他們放在同一個(gè)批次里。該參數(shù)指定了一個(gè)批次可以使用的內(nèi)存大小
- 如果設(shè)置的很大,也不會(huì)造成延遲,半滿或者只包含一個(gè)消息的批次也有可能被發(fā)送
- 設(shè)置的太小,生產(chǎn)者需要更頻繁地發(fā)送消息,會(huì)增加一些額外開銷
6.linger.ms
- 指定了生產(chǎn)者在發(fā)送批次之前等待更多消息加入批次的時(shí)間
- 缺點(diǎn):增加延遲
- 優(yōu)點(diǎn):提升吞吐量
7.client.id
- 服務(wù)器會(huì)用它來識(shí)別消息的來源,還可以用在日志和配額指標(biāo)
8.max.in.flight.requests.per.connection
- 生產(chǎn)者在收到服務(wù)器響應(yīng)之前可以發(fā)送多少個(gè)消息。值越高,越占用內(nèi)存,提升吞吐量
9.max.request.size
- 控制發(fā)送者發(fā)送的請(qǐng)求大小
10.kafka保證同一個(gè)分區(qū)里的消息是有序的,消費(fèi)者會(huì)按照生產(chǎn)者的插入順序進(jìn)行讀取
? ?如果某些場(chǎng)景要求消息是有序的,那么消息是否寫入成功是很關(guān)鍵的,不要把retries設(shè)為0,可以把max.in.flight.requests.per.connection設(shè)為1,這樣生產(chǎn)者嘗試發(fā)送第一批消息時(shí),就不會(huì)有其他的消息發(fā)送給broker
? ?缺點(diǎn):嚴(yán)重影響生產(chǎn)者的吞吐量文章來源:http://www.zghlxwxcb.cn/news/detail-803325.html
? ?優(yōu)點(diǎn):消息嚴(yán)格有序文章來源地址http://www.zghlxwxcb.cn/news/detail-803325.html
到了這里,關(guān)于Kafka生產(chǎn)者的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!