1. kafka如何保證數(shù)據(jù)不丟失
1.1 生產(chǎn)者如何保證數(shù)據(jù)不丟失
ACK機(jī)制:
當(dāng)生產(chǎn)者將數(shù)據(jù)生產(chǎn)到Broker后, Broker應(yīng)該給予一個(gè)ack確認(rèn)響應(yīng), 在kafka中, 主要提供了三種ack的方案:
?? ?ack=0 : 生產(chǎn)者只管發(fā)送數(shù)據(jù), 不關(guān)心不接收Broker給予的響應(yīng)
?? ?ack=1 : 生產(chǎn)者將數(shù)據(jù)發(fā)送到Broker端, 需要等待Broker端對(duì)應(yīng)的Topic上對(duì)應(yīng)分片上的主副本接收到消息后, 才認(rèn)為發(fā)送成功了
?? ?ack=-1|ALL: 生產(chǎn)者將數(shù)據(jù)發(fā)送到Broker端, 需要等待Broker端對(duì)應(yīng)的Topic上對(duì)應(yīng)分片上的所有的副本都接收到消息后, 才認(rèn)為發(fā)送成功了
?? ?
?? ?效率角度:??0??> 1 > -1
?? ?
?? ?安全角度:??-1 > 1 > 0
?? ?
?? ?思考: 請(qǐng)問(wèn)在實(shí)際使用中, 使用什么方案呢? 三種都有可能??????
?? ?一般要根據(jù)消息的重要程度, 來(lái)選擇對(duì)應(yīng)的方案, 如果數(shù)據(jù)非常重要, 不能丟失, 選擇為 -1 ,如果說(shuō)無(wú)所謂 那么就選擇 0 , 可以允許一定丟失 1????同時(shí)還要結(jié)合生產(chǎn)的速率也要作為一定判定依據(jù)
1.2 Broker端如何保證數(shù)據(jù)不丟失
保證方案: 磁盤(pán)存儲(chǔ) + 多副本 + ack為-1
1.3 消費(fèi)端如何保證數(shù)據(jù)不丟失
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-462390.html
?# 博學(xué)谷IT 技術(shù)支持文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-462390.html
到了這里,關(guān)于kafka如何保證數(shù)據(jù)不丟失的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!