成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

kafka消息隊(duì)列

godlong_X / 438人閱讀

摘要:為什么使用消息隊(duì)列消息隊(duì)列的優(yōu)缺優(yōu)點(diǎn)解耦異步消峰缺點(diǎn)系統(tǒng)的可用性降低,系統(tǒng)引入的外部依賴越多,越容易掛掉系統(tǒng)復(fù)雜性提高數(shù)據(jù)一致性問題常用消息隊(duì)列的優(yōu)缺點(diǎn)技術(shù)非常成熟,但是偶爾會出現(xiàn)較低概率的丟失消息,而且現(xiàn)在社區(qū)以及國內(nèi)應(yīng)用都越來越少社區(qū)相

為什么使用消息隊(duì)列
消息隊(duì)列的優(yōu)缺
1優(yōu)點(diǎn)

(1) 解耦

(2) 異步

(3) 消峰

2 缺點(diǎn)

(1)系統(tǒng)的可用性降低,系統(tǒng)引入的外部依賴越多,越容易掛掉

(2)系統(tǒng)復(fù)雜性提高

(3)數(shù)據(jù)一致性問題

常用消息隊(duì)列的優(yōu)缺點(diǎn)

(1)activeMq 技術(shù)非常成熟,但是偶爾會出現(xiàn)較低概率的丟失消息,而且現(xiàn)在社區(qū)以及國內(nèi)應(yīng)用都越來越少

(2)rabbitMQ 社區(qū)相對活躍,吞吐量是萬級別,而且開元,性能極好,但是erlang語言阻止了大量的Java程序員深入研究和掌握他,對公司而言幾乎是不可控的

(3)rocketMq 10萬級別的,rockectMq 也是可以支持高吞吐的一個MQ,topic可以達(dá)到幾百,幾千的級別,可用性非常的高,分布式架構(gòu),但是社區(qū)有黃的風(fēng)險(xiǎn)。

(4)kafka 特點(diǎn)就是僅僅提供較少的核心功能,但是提供較高的吞吐量,極高的可用性能,而且分布式可以隨意的擴(kuò)展,但是沒有重復(fù)消費(fèi),會對大數(shù)據(jù)產(chǎn)生一點(diǎn)點(diǎn)影響,特別適合大數(shù)據(jù)領(lǐng)域的實(shí)時計(jì)算,日志采集等場景,社區(qū)活躍度很高

消息隊(duì)列的高可用

(1)kafka是天然的分布式消息隊(duì)列,就是說一個topic的數(shù)據(jù),是分散在多個機(jī)器上的,每一個機(jī)器就放其中的一部分?jǐn)?shù)據(jù),kafka0.8以后,提供了HA機(jī)制,就是replica的副本機(jī)制,,每一個partition的數(shù)據(jù)都會同步到其他的機(jī)器上,形成自己的多個replica副本,然后所有的replica就會選舉一個leader出來,那么生產(chǎn)者和消費(fèi)者都跟這個leader打交道,然后其他的replica就是flower,leader會負(fù)責(zé)將數(shù)據(jù)同步到follower中去,讀的時候直接讀leader上的數(shù)據(jù)就行了。這么搞,就有所謂的高可用性了,因?yàn)槿绻粋€broke硯機(jī)了,那么其他的機(jī)器上有他的副本,如果時某個partition的leader出現(xiàn)了問題,那么follower就會選舉為新的leader,大家就可以繼續(xù)讀寫那個新的leader即可,這就是所謂的高可用性。

如何保證消息不被重復(fù)消費(fèi)(如何保證消息的消費(fèi)時的冪等性)

kafka有個offset的概念,就是每次每個消息寫進(jìn)去,都有一個offset,代表他的序號,然后,consumer 消費(fèi)了數(shù)據(jù)之后,每隔一段時間,就會把自己消費(fèi)了的offset提交一下,代表我已經(jīng)消費(fèi)過了,下一次要是重啟啥的,就會繼續(xù)從上一次的消費(fèi)的offset來繼續(xù)消費(fèi),但是假如,有時候 重啟系統(tǒng),就會導(dǎo)致有些還沒有來的及處理的消息沒有offset,就會導(dǎo)致有些消息會在消費(fèi)一次。其實(shí)重復(fù)消費(fèi)并沒有什么,最重要的是保證冪等性,如何消除冪等性的問題

(1)比如,你拿數(shù)據(jù)庫里面的數(shù)據(jù),你先跟住主鍵進(jìn)行查詢一下,如果數(shù)據(jù)都有了,你就不需要插入了,直接update一下就好了

(2)比如你是寫Redis,那就沒有問題了,反正每次都是set,天然冪等性

(3)可以使用唯一鍵進(jìn)行約束

如何保證數(shù)據(jù)的可靠性傳輸

(1)消費(fèi)端能丟了數(shù)據(jù)

    就是說消費(fèi)者消費(fèi)了消費(fèi)到消息,然后消費(fèi)者那邊自動提交了offset,讓kafka以為你已經(jīng)消費(fèi)了數(shù)據(jù),但是其實(shí)你這邊還沒有處理,就已經(jīng)掛了,那么只需要關(guān)閉自動提交offset,在處理完成以后自己手動的提交offset,就可以保證數(shù)據(jù)不會丟失了,但是此時會存在重復(fù)消費(fèi)的問題,這時,只需要保證冪等問題就好了。
    

(2)kafka弄丟了數(shù)據(jù)

    這是一個比較常見的問題,就是kafka某個broke巖機(jī),然后重新選舉某一個partition的leader時,假如此時其他的follower還有一些數(shù)據(jù)還沒有同步,結(jié)果leader就已經(jīng)掛了,然后選舉某一個follower成leader后,就會少了一批數(shù)據(jù)。此時,我們要給topic設(shè)置4個參數(shù)就好了,
    
    *1 給topic設(shè)置replication.factor參數(shù),這個值必須大于1,要求每一個partition必須至少2個副本  ??
    
    *2 在producer端設(shè)置ACKs=all:這是要求每條數(shù)據(jù),都必須是寫入replica之后,才能認(rèn)為是寫入成功了
    
    *3 在producer端設(shè)置retries=max,這就要求一旦寫入失敗,就無限重試,卡在這里了。
    
    *4 在kafka服務(wù)器設(shè)置min.insync.replicas參數(shù),這個值必須大于1,這是要求一個leader至少感知到有至少一個follower還和自己進(jìn)行聯(lián)系,沒有掉隊(duì),這樣才能保證leader掛了,還有一個follower
    

如何保證數(shù)據(jù)的有序性

  一個topic,一個partition,一個consumer,內(nèi)部線程消費(fèi),寫N個內(nèi)存queue,然后N個線程分別消費(fèi)一個內(nèi)存queue即可
  

如何解決消息隊(duì)列中的時效性問題,消息對列中消息滿了怎么辦

   擴(kuò)容
   
    (0)將現(xiàn)有的consumer停掉
   
    (1)新建一個topic,partition是原來的10倍,臨時建好原先10倍或20倍的queue數(shù)量
    
    (2)寫一些臨時的分發(fā)數(shù)據(jù)的程序,將程序部署到上面進(jìn)行消費(fèi)
    

設(shè)計(jì)一個MQ系統(tǒng)架構(gòu)注意點(diǎn)

    (1) 系統(tǒng)可伸縮,就是想要擴(kuò)容的時候能夠擴(kuò)容,我們可以采用分布式架構(gòu)
    
    (2) MQ的數(shù)據(jù)怎樣落地到磁盤
    
    (3) MQ的可用性
    
     (4) 保證數(shù)據(jù)的完整性,以及數(shù)據(jù)丟失的方案
     

總結(jié) 通過以上的學(xué)習(xí)可以使我們基本了解消息隊(duì)列的使用。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/69716.html

相關(guān)文章

  • 阿里云正式推出消息隊(duì)列Kafka:全面融合開源生態(tài)

    摘要:在全面兼容Apache Kafka生態(tài)的基礎(chǔ)上,消息隊(duì)列Kafka徹底解決ApacheKafka穩(wěn)定性不足的長期痛點(diǎn),并且支持消息無縫遷移到云上。 近日,阿里云宣布正式推出消息隊(duì)列Kafka,全面融合開源生態(tài)。在全面兼容Apache Kafka生態(tài)的基礎(chǔ)上,消息隊(duì)列Kafka還具備了超易用,超高可用可靠性,擴(kuò)縮容不操心,全方位安全診斷,數(shù)據(jù)安全有保障的特點(diǎn)??捎眯羞_(dá)99.9%,數(shù)據(jù)可靠行99...

    aisuhua 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<