教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

Kafka怎樣實(shí)現(xiàn)生產(chǎn)者冪等性?

更新時(shí)間:2021年12月06日16時(shí)03分 來(lái)源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

什么是冪等性?用http舉例來(lái)說(shuō),一次或多次請(qǐng)求,得到地響應(yīng)是一致的(網(wǎng)絡(luò)超時(shí)等問(wèn)題除外)就是冪等性,換句話(huà)說(shuō),就是執(zhí)行多次操作與執(zhí)行一次操作的影響是一樣的。

如果,某個(gè)系統(tǒng)是不具備冪等性的,如果用戶(hù)重復(fù)提交了某個(gè)表格,就可能會(huì)造成不良影響。例如:用戶(hù)在瀏覽器上點(diǎn)擊了多次提交訂單按鈕,會(huì)在后臺(tái)生成多個(gè)一模一樣的訂單。

Kafka在生產(chǎn)者生產(chǎn)消息時(shí),如果出現(xiàn)retry時(shí),有可能會(huì)一條消息被發(fā)送了多次,如果Kafka不具備冪等性的,就有可能會(huì)在partition中保存多條一模一樣的消息。

配置冪等性:props.put("enable.idempotence",true);
冪等性的原理:

為了實(shí)現(xiàn)生產(chǎn)者的冪等性,Kafka引入了 Producer ID(PID)和 Sequence Number的概念。

1.D:每個(gè)Producer在初始化時(shí),都會(huì)分配一個(gè)唯一的PID,這個(gè)PID對(duì)用戶(hù)來(lái)說(shuō),是透明的。

2.equence Number:針對(duì)每個(gè)生產(chǎn)者(對(duì)應(yīng)PID)發(fā)送到指定主題分區(qū)的消息都對(duì)應(yīng)一個(gè)從0開(kāi)始遞增的Sequence Number。




猜你喜歡:

怎樣一鍵啟動(dòng)或關(guān)閉Kafka?有快捷的方法嗎?

Kafka基準(zhǔn)測(cè)試怎樣進(jìn)行?

如果leader崩潰,Kafka怎樣重新選舉?

kafka自定義攔截器實(shí)例教程[傳智教育]

傳智教育Python+大數(shù)據(jù)開(kāi)發(fā)培訓(xùn)

0 分享到:
和我們?cè)诰€(xiàn)交談!