日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kafka消息的可靠性

發(fā)布時間:2024/4/13 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kafka消息的可靠性 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

沒有一個中間件能夠做到百分之百的完全可靠,可靠性更多的還是基于幾個9的衡量指標(biāo),比如4個9、5個9. 軟件系統(tǒng)的可靠性只能夠無限去接近100%,但不可能達(dá)到100%。所以kafka如何是實現(xiàn)最大可能的可靠性呢?

分區(qū)副本, 你可以創(chuàng)建更多的分區(qū)來提升可靠性,但是分區(qū)數(shù)過多也會帶來性能上的開銷,一般來說,3個副本就能滿足對大部分場景的可靠性要求

acks,生產(chǎn)者發(fā)送消息的可靠性,也就是我要保證我這個消息一定是到了broker并且完成了多副本的持久化,但這種要求也同樣會帶來性能上的開銷。它有幾個可選項

1 ,生產(chǎn)者把消息發(fā)送到leader副本,leader副本在成功寫入到本地日志之后就告訴生產(chǎn)者消息提交成功,但是如果isr集合中的follower副本還沒來得及同步leader副本的消息,leader掛了,就會造成消息丟失

-1 ,消息不僅僅寫入到leader副本,并且被ISR集合中所有副本同步完成之后才告訴生產(chǎn)者已經(jīng)提交成功,這個時候即使leader副本掛了也不會造成數(shù)據(jù)丟失。

0:表示producer不需要等待broker的消息確認(rèn)。這個選項時延最小但同時風(fēng)險最大(因為當(dāng)server宕機(jī)時,數(shù)據(jù)將會丟失)。

保障消息到了broker之后,消費者也需要有一定的保證,因為消費者也可能出現(xiàn)某些問題導(dǎo)致消息沒有消費到

enable.auto.commit默認(rèn)為true,也就是自動提交offset,自動提交是批量執(zhí)行的,有一個時間窗口,這種方式會帶來重復(fù)提交或者消息丟失的問題,所以對于高可靠性要求的程序,要使用手動提交。 對于高可靠要求的應(yīng)用來說,寧愿重復(fù)消費也不應(yīng)該因為消費異常而導(dǎo)致消息丟失

?

總結(jié)

以上是生活随笔為你收集整理的Kafka消息的可靠性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。