国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

kafka無消息丟失配置

這篇具有很好參考價(jià)值的文章主要介紹了kafka無消息丟失配置。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

前言:

?消息丟失的場(chǎng)景

?生產(chǎn)者消息丟失

Broker消息丟失?

消費(fèi)者消息丟失?

?消息丟失問題排查

無消息丟失配置:

參考資料:


前言:

? ? ? 使用消息中間件時(shí),我們遇到最頭疼的事就消息丟失,小則影響程序錯(cuò)誤,大則影響到某個(gè)重要業(yè)務(wù)失敗。如果kafka配置不當(dāng)或者使用不當(dāng),是很有可能出現(xiàn)消息丟失的。本篇博文重點(diǎn)探討主要的kafka消息丟失的場(chǎng)景及我們應(yīng)該如何配置kafka參數(shù)來避免消息的丟失。

?消息丟失的場(chǎng)景

? ? ? 消息丟失無非分為3種,生產(chǎn)端消息丟失、kafka-broker端消息丟失、服務(wù)端消息丟失。

Kafka對(duì)于消息丟失這件事,只做了如下承諾,kafka只對(duì)已提交的消息做有限度的持久化保證。

?生產(chǎn)者消息丟失

? ? ? 那生產(chǎn)者丟失,大多數(shù)就是因?yàn)?,生產(chǎn)者不確定消息是否已經(jīng)提交成功。如果使用不帶

回調(diào)通知的send方法的話producer.send(msg),就無法保證消息被成功。所以我們應(yīng)該使用帶回調(diào)函數(shù)的send方法producer.send(msg,callback),這樣我們就可以監(jiān)聽消息的發(fā)送情況,然后做有效的重試,確保消息都發(fā)送成功。

Broker消息丟失?

?? 對(duì)于kafka服務(wù)器端消息丟失,相對(duì)來說概率是比較小的,kafka作為一個(gè)成熟的中間件,經(jīng)受業(yè)界的認(rèn)可,但是需要注意,消息在borker中是由存在時(shí)長的,超過這個(gè)時(shí)間,默認(rèn)會(huì)刪除這些消息,另外對(duì)于分區(qū)的副本數(shù)也要進(jìn)行合理設(shè)計(jì),避免因?yàn)槟骋慌_(tái)機(jī)器的硬盤別破壞掉后,導(dǎo)致消息丟失。

消費(fèi)者消息丟失?

? ? ?消費(fèi)者消費(fèi)丟失,大多數(shù)的場(chǎng)景為位移提交出現(xiàn)了問題,比如在消費(fèi)者異步多線程消費(fèi)消息,其中有個(gè)處理失敗,位移提交失敗,就會(huì)導(dǎo)致這個(gè)線程處理的消息丟失。??

?消息丟失問題排查

? ? 對(duì)于消息丟失的問題,首先,我們應(yīng)該建立完整的日志,在消息發(fā)送前和發(fā)送后 、消費(fèi)前后分別計(jì)日志,?建立告警機(jī)制。

無消息丟失配置:

  1. 不要使用producer.send(msg),而要使用producer.send(msg, callback)。記住,一定要使用帶有回調(diào)通知的send方法。
  2. 設(shè)置acks = all。acks是Producer的一個(gè)參數(shù),代表了你對(duì)“已提交”消息的定義。如果設(shè)置成all,則表明所有副本Broker都要接收到消息,該消息才算是“已提交”。這是最高等級(jí)的“已提交”定義。
  3. 設(shè)置retries為一個(gè)較大的值。這里的retries同樣是Producer的參數(shù),對(duì)應(yīng)前面提到的Producer自動(dòng)重試。當(dāng)出現(xiàn)網(wǎng)絡(luò)的瞬時(shí)抖動(dòng)時(shí),消息發(fā)送可能會(huì)失敗,此時(shí)配置了retries > 0的Producer能夠自動(dòng)重試消息發(fā)送,避免消息丟失。
  4. 設(shè)置unclean.leader.election.enable = false。這是Broker端的參數(shù),它控制的是哪些Broker有資格競(jìng)選分區(qū)的Leader。如果一個(gè)Broker落后原先的Leader太多,那么它一旦成為新的Leader,必然會(huì)造成消息的丟失。故一般都要將該參數(shù)設(shè)置成false,即不允許這種情況的發(fā)生。
  5. 設(shè)置replication.factor >= 3。這也是Broker端的參數(shù)。其實(shí)這里想表述的是,最好將消息多保存幾份,畢竟目前防止消息丟失的主要機(jī)制就是冗余。
  6. 設(shè)置min.insync.replicas > 1。這依然是Broker端參數(shù),控制的是消息至少要被寫入到多少個(gè)副本才算是“已提交”。設(shè)置成大于1可以提升消息持久性。在實(shí)際環(huán)境中千萬不要使用默認(rèn)值1。
  7. 確保replication.factor > min.insync.replicas。如果兩者相等,那么只要有一個(gè)副本掛機(jī),整個(gè)分區(qū)就無法正常工作了。我們不僅要改善消息的持久性,防止數(shù)據(jù)丟失,還要在不降低可用性的基礎(chǔ)上完成。推薦設(shè)置成replication.factor = min.insync.replicas + 1。
  8. 確保消息消費(fèi)完成再提交。Consumer端有個(gè)參數(shù)enable.auto.commit,最好把它設(shè)置成false,并采用手動(dòng)提交位移的方式。就像前面說的,這對(duì)于單Consumer多線程處理的場(chǎng)景而言是至關(guān)重要的。

參考資料:

?極客時(shí)間課程《kafka核心技術(shù)與實(shí)戰(zhàn)》第11課

無消息丟失配置如何實(shí)現(xiàn)?文章來源地址http://www.zghlxwxcb.cn/news/detail-595875.html

到了這里,關(guān)于kafka無消息丟失配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 分布式 - 消息隊(duì)列Kafka:Kafka生產(chǎn)者發(fā)送消息的分區(qū)策略

    分布式 - 消息隊(duì)列Kafka:Kafka生產(chǎn)者發(fā)送消息的分區(qū)策略

    01. Kafka 分區(qū)的作用 分區(qū)的作用就是提供負(fù)載均衡的能力,或者說對(duì)數(shù)據(jù)進(jìn)行分區(qū)的主要原因,就是為了實(shí)現(xiàn)系統(tǒng)的高伸縮性。不同的分區(qū)能夠被放置到不同節(jié)點(diǎn)的機(jī)器上,而數(shù)據(jù)的讀寫操作也都是針對(duì)分區(qū)這個(gè)粒度而進(jìn)行的,這樣每個(gè)節(jié)點(diǎn)的機(jī)器都能獨(dú)立地執(zhí)行各自分區(qū)的

    2024年02月13日
    瀏覽(32)
  • 分布式 - 消息隊(duì)列Kafka:Kafka生產(chǎn)者發(fā)送消息的3種方式

    分布式 - 消息隊(duì)列Kafka:Kafka生產(chǎn)者發(fā)送消息的3種方式

    不管是把Kafka作為消息隊(duì)列、消息總線還是數(shù)據(jù)存儲(chǔ)平臺(tái),總是需要一個(gè)可以往Kafka寫入數(shù)據(jù)的生產(chǎn)者、一個(gè)可以從Kafka讀取數(shù)據(jù)的消費(fèi)者,或者一個(gè)兼具兩種角色的應(yīng)用程序。 Kafka 生產(chǎn)者是指使用 Apache Kafka 消息系統(tǒng)的應(yīng)用程序,它們負(fù)責(zé)將消息發(fā)送到 Kafka 集群中的一個(gè)或多

    2024年02月13日
    瀏覽(29)
  • 【新星計(jì)劃】Kafka分布式發(fā)布訂閱消息系統(tǒng)

    【新星計(jì)劃】Kafka分布式發(fā)布訂閱消息系統(tǒng)

    ? 目錄 Kafka分布式發(fā)布訂閱消息系統(tǒng) 1. 概述 1.1 點(diǎn)對(duì)點(diǎn)消息傳遞模式 1.2 發(fā)布-訂閱消息傳遞模式 1.3 Kafka特點(diǎn) 1.4 kafka拓?fù)鋱D 2. Kafka工作原理 2.1 Kafka核心組件介紹 2.2 Kafka工作流程分析 2.2.1 生產(chǎn)者生產(chǎn)消息過程 2.2.2 消費(fèi)者消費(fèi)消息過程 2.2.3 Kafka Topics 2.2.4 Kafka Partition 2.2.4 Kafka

    2024年02月08日
    瀏覽(27)
  • 分布式消息隊(duì)列Kafka(四)- 消費(fèi)者

    分布式消息隊(duì)列Kafka(四)- 消費(fèi)者

    1.Kafka消費(fèi)方式 2.Kafka消費(fèi)者工作流程 (1)總體工作流程 (2)消費(fèi)者組工作流程 3.消費(fèi)者API (1)單個(gè)消費(fèi)者消費(fèi) 實(shí)現(xiàn)代碼 (2)單個(gè)消費(fèi)者指定分區(qū)消費(fèi) 代碼實(shí)現(xiàn): (3)消費(fèi)者組消費(fèi) 復(fù)制上面CustomConsumer三個(gè),同時(shí)去訂閱統(tǒng)一個(gè)主題,消費(fèi)數(shù)據(jù),發(fā)現(xiàn)一個(gè)分區(qū)只能被一個(gè)

    2023年04月26日
    瀏覽(33)
  • 分布式 - 消息隊(duì)列Kafka:Kafka 消費(fèi)者的消費(fèi)位移

    分布式 - 消息隊(duì)列Kafka:Kafka 消費(fèi)者的消費(fèi)位移

    01. Kafka 分區(qū)位移 對(duì)于Kafka中的分區(qū)而言,它的每條消息都有唯一的offset,用來表示消息在分區(qū)中對(duì)應(yīng)的位置。偏移量從0開始,每個(gè)新消息的偏移量比前一個(gè)消息的偏移量大1。 每條消息在分區(qū)中的位置信息由一個(gè)叫位移(Offset)的數(shù)據(jù)來表征。分區(qū)位移總是從 0 開始,假設(shè)一

    2024年02月12日
    瀏覽(27)
  • 分布式應(yīng)用之zookeeper集群+消息隊(duì)列Kafka

    分布式應(yīng)用之zookeeper集群+消息隊(duì)列Kafka

    ? ? ? ?ZooKeeper是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個(gè)開源的實(shí)現(xiàn),是Hadoop和Hbase的重要組件。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。為分布式框架提供協(xié)調(diào)服務(wù)的

    2024年02月06日
    瀏覽(139)
  • zookeeper+kafka分布式消息隊(duì)列集群的部署

    zookeeper+kafka分布式消息隊(duì)列集群的部署

    目錄 一、zookeeper 1.Zookeeper 定義 2.Zookeeper 工作機(jī)制 3.Zookeeper 特點(diǎn) 4.Zookeeper 數(shù)據(jù)結(jié)構(gòu) 5.Zookeeper 應(yīng)用場(chǎng)景 (1)統(tǒng)一命名服務(wù) (2)統(tǒng)一配置管理 (3)統(tǒng)一集群管理 (4)服務(wù)器動(dòng)態(tài)上下線 6.Zookeeper 選舉機(jī)制 (1)第一次啟動(dòng)選舉機(jī)制 (2)非第一次啟動(dòng)選舉機(jī)制 7.部署zookeepe

    2024年02月14日
    瀏覽(25)
  • 分布式 - 消息隊(duì)列Kafka:Kafka消費(fèi)者的分區(qū)分配策略

    分布式 - 消息隊(duì)列Kafka:Kafka消費(fèi)者的分區(qū)分配策略

    Kafka 消費(fèi)者負(fù)載均衡策略? Kafka 消費(fèi)者分區(qū)分配策略? 1. 環(huán)境準(zhǔn)備 創(chuàng)建主題 test 有5個(gè)分區(qū),準(zhǔn)備 3 個(gè)消費(fèi)者并進(jìn)行消費(fèi),觀察消費(fèi)分配情況。然后再停止其中一個(gè)消費(fèi)者,再次觀察消費(fèi)分配情況。 ① 創(chuàng)建主題 test,該主題有5個(gè)分區(qū),2個(gè)副本: ② 創(chuàng)建3個(gè)消費(fèi)者CustomConsu

    2024年02月13日
    瀏覽(31)
  • 分布式 - 消息隊(duì)列Kafka:Kafka消費(fèi)者和消費(fèi)者組

    分布式 - 消息隊(duì)列Kafka:Kafka消費(fèi)者和消費(fèi)者組

    1. Kafka 消費(fèi)者是什么? 消費(fèi)者負(fù)責(zé)訂閱Kafka中的主題,并且從訂閱的主題上拉取消息。與其他一些消息中間件不同的是:在Kafka的消費(fèi)理念中還有一層消費(fèi)組的概念,每個(gè)消費(fèi)者都有一個(gè)對(duì)應(yīng)的消費(fèi)組。當(dāng)消息發(fā)布到主題后,只會(huì)被投遞給訂閱它的每個(gè)消費(fèi)組中的一個(gè)消費(fèi)者

    2024年02月13日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包