【MQ】為什么選擇RocketMQ?


一、前言

      提到mq,可能很多朋友都有多耳聞,很多大公司都在使用這種技術。就小編而言,聽說使用mq可以進行秒殺的操作,而且使用十分的方便,效率十分的高。以前小編也做過關於秒殺的技術,就是使用悲觀鎖對DAO進行操作,通過加鎖使得線程單一。但是上億條數據訪問數據庫也是對數據有很大的壓力的。所以我們可以在DAO和數據庫之間加入一個MQ,他的承載數據的能力非常強,有什么就直接向這個里面裝就可以了。然后他再負責向數據庫傳遞消息。數據庫再進行操作,達到了數據庫解耦。

      但是為毛小編這里要選擇RocketMQ呢?在眾多的mq中,他有什么突出的優點呢?小編在下面向大家介紹。

二、說說現在主流的MQ

      MQ,消息隊列,Message Queue。

      在主流的MQ中,有很多,比如ActiveMQ、RabbitMQ、RocketMQ、Kafka、ZeroMQ等,下面是小編在網上找到的對比的情況:

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

關於為什么使用RocketMQ?

      RocketMQ是一款分布式、隊列模型的消息中間件,是由阿里巴巴設計的,具有以下特點:

  • 支持嚴格的消息順序

  • 支持Topic與Queue兩種模式

  • 億級消息堆積能力

  • 比較友好的分布式特性

  • 同時支持Push與Pull方式消費消息

  • 歷經多次天貓雙十一海量消息考驗

  • RocketMQ是純java編寫,基於通信框架Netty。

      其實小編就沖着RocketMQ歷經多次天貓雙十一海量消息考驗,就感覺應該選擇他了,再加上有億級消息堆積能力,這么強大的一個部件,一個新生的黑馬!值得大家發現。

三、專訪RocketMQ聯合創始人

      2012年,阿里巴巴開源其自研的第三代分布式消息中間件——RocketMQ。經過幾年的技術打磨,阿里稱基於RocketMQ技術,目前雙十一當天消息容量可達到萬億級。

      2016年11月,阿里將RocketMQ捐獻給Apache軟件基金會,正式成為孵化項目。阿里稱會將其打造成頂級項目。這是阿里邁出的一大步,因為加入到開源軟件基金會需要經過評審方的考核與觀察。坦率而言,業界還對國人的代碼開源參與度仍保持着刻板印象;而Apache基金會中的342個項目中,暫時還只有Kylin、CarbonData、Eagle 和 RocketMQ 共計四個中國技術人主導的項目。

      2017年2月20日,RocketMQ正式發布4.0版本,專家稱新版本適用於電商領域,金融領域,大數據領域,兼有物聯網領域的編程模型。

經歷雙11洗禮的英雄

      在備戰2016年雙十一時,團隊重點做了兩件事情,優化慢請求與統一存儲引擎。

  • 優化慢請求:這里主要是解決在海量高並發場景下降低慢請求對整個集群帶來的抖動,毛刺問題。這是一個極具挑戰的技術活,團隊同學經過長達1個多月的跟進調優,從雙十一的復盤情況來看,99.996%的延遲落在了10ms以內,而99.6%的延遲在1ms以內。優化主要集中在RocketMQ存儲層算法優化、JVM與操作系統調優。更多的細節大家可以參考我們之前寫的電子書章節《萬億級數據洪峰下的分布式消息引擎》。

  • 統一存儲引擎:主要解決的消息引擎的高可用,成本問題。在多代消息引擎共存的前提下,我們對Notify的存儲模塊進行了全面移植與替換。

      RocketMQ天生為金融互聯網領域而生,追求高可靠、高可用、高並發、低延遲,是一個阿里巴巴由內而外成功孕育的典范,除了阿里集團上千個應用外,根據我們不完全統計,國內至少有上百家單位、科研教育機構在使用。

四、小結

      通過這次的總結分析也更加了解了為什么要使用RocketMQ,他高可靠,高並發,低延遲,基本O丟失。所以非常值得學習。

      下一篇博客將帶來如何搭建RocketMQ服務器。

原文地址:https://blog.csdn.net/kisscatforever/article/details/72773295


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM