提到mq,可能不少朋友都有多耳聞,不少大公司都在使用這種技術。就小編而言,據說使用mq能夠進行秒殺的操做,並且使用十分的方便,效率十分的高。之前小編也作過關於秒殺的技術,就是使用悲觀鎖對DAO進行操做,經過加鎖使得線程單一。可是上億條數據訪問數據庫也是對數據有很大的壓力的。因此咱們能夠在DAO和數據庫之間加入一個MQ,他的承載數據的能力很是強,有什麼就直接向這個裏面裝就能夠了。而後他再負責向數據庫傳遞消息。數據庫再進行操做,達到了數據庫解耦。java
可是爲毛小編這裏要選擇RocketMQ呢?在衆多的mq中,他有什麼突出的優勢呢?小編在下面向你們介紹。web
MQ,消息隊列,Message Queue。算法
在主流的MQ中,有不少,好比ActiveMQ、RabbitMQ、RocketMQ、Kafka、ZeroMQ等,下面是小編在網上找到的對比的狀況:數據庫
RocketMQ是一款分佈式、隊列模型的消息中間件,是由阿里巴巴設計的,具備如下特色:編程
支持嚴格的消息順序服務器
支持Topic與Queue兩種模式markdown
億級消息堆積能力併發
比較友好的分佈式特性框架
同時支持Push與Pull方式消費消息分佈式
歷經屢次天貓雙十一海量消息考驗
RocketMQ是純java編寫,基於通訊框架Netty。
其實小編就衝着RocketMQ歷經屢次天貓雙十一海量消息考驗,就感受應該選擇他了,再加上有億級消息堆積能力,這麼強大的一個部件,一個新生的黑馬!值得你們發現。
2012年,阿里巴巴開源其自研的第三代分佈式消息中間件——RocketMQ。通過幾年的技術打磨,阿里稱基於RocketMQ技術,目前雙十一當天消息容量可達到萬億級。
2016年11月,阿里將RocketMQ捐獻給Apache軟件基金會,正式成爲孵化項目。阿里稱會將其打形成頂級項目。這是阿里邁出的一大步,由於加入到開源軟件基金會須要通過評審方的考覈與觀察。坦率而言,業界還對國人的代碼開源參與度仍保持着刻板印象;而Apache基金會中的342個項目中,暫時還只有Kylin、CarbonData、Eagle 和 RocketMQ 共計四個中國技術人主導的項目。
2017年2月20日,RocketMQ正式發佈4.0版本,專家稱新版本適用於電商領域,金融領域,大數據領域,兼有物聯網領域的編程模型。
在備戰2016年雙十一時,團隊重點作了兩件事情,優化慢請求與統一存儲引擎。
優化慢請求:這裏主要是解決在海量高併發場景降低低慢請求對整個集羣帶來的抖動,毛刺問題。這是一個極具挑戰的技術活,團隊同窗通過長達1個多月的跟進調優,從雙十一的覆盤狀況來看,99.996%的延遲落在了10ms之內,而99.6%的延遲在1ms之內。優化主要集中在RocketMQ存儲層算法優化、JVM與操做系統調優。更多的細節你們能夠參考咱們以前寫的電子書章節《萬億級數據洪峯下的分佈式消息引擎》。
統一存儲引擎:主要解決的消息引擎的高可用,成本問題。在多代消息引擎共存的前提下,咱們對Notify的存儲模塊進行了全面移植與替換。
RocketMQ天生爲金融互聯網領域而生,追求高可靠、高可用、高併發、低延遲,是一個阿里巴巴由內而外成功孕育的典範,除了阿里集團上千個應用外,根據咱們不徹底統計,國內至少有上百家單位、科研教育機構在使用。
經過此次的總結分析也更加了解了爲何要使用RocketMQ,他高可靠,高併發,低延遲,基本O丟失。因此很是值得學習。
下一篇博客將帶來如何搭建RocketMQ服務器。
原文地址:https://blog.csdn.net/kisscatforever/article/details/72773295