RocketMq消息隊列實施計劃方案_第1頁
RocketMq消息隊列實施計劃方案_第2頁
RocketMq消息隊列實施計劃方案_第3頁
RocketMq消息隊列實施計劃方案_第4頁
RocketMq消息隊列實施計劃方案_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、消息隊列實施方案1、背景異步解耦合、給前端系統(tǒng)提供最高效的反響2、常見消息隊列比照2、1 ActiveMqActiveMQ 是一個完全支持 JMS1.1和J2EE 1.4規(guī)的 JMS Provider實現優(yōu)點:Java語言支持集群模式缺點:性能在消息中間件中處于下游2、2 RabbitmqRabbitmq 是基于 AMQP使用erlang語言實現的消息隊列系統(tǒng)優(yōu)點:1、完整的消息隊列系統(tǒng),支持多種消息隊列模式,包括競爭消費;2、支持集群模式,擴展集群容量和性能比擬方便,集成了集群的監(jiān)控和管理;3、支持消息的持久化;缺點:1、需要學習比擬復雜的接口和協(xié)議,比擬消耗時間;2、 性能不是特別理想大概

2、在1wqps左右;3、使用Erlang語言,語言根底;2、3 KafkaKafka是LinkedIn開發(fā)的一個高性能、分布式的消息發(fā)布訂閱系統(tǒng)。優(yōu)點:1、分布式集群可以透明的擴展,增加新的效勞器進集群。2、高性能。單機寫入 TPS約在百萬條/秒3、容錯。數據都會復制到幾臺效勞器上。缺點:1、復雜性。Kafka需要zookeeper集群的支持,Topic通常需要人工來創(chuàng)立,部署和 維護較一般消息隊列本錢更高定位于日志傳輸、存在消息喪失的肯能、消息亂序3、消息發(fā)送錯誤無重試2、4 RocketMQRockerMq是阿里公司中間件團隊參考Kafka思想,用Java語言實現的消息傳輸系統(tǒng)優(yōu)點:1較高性

3、能,單機寫入 TPS單實例約7萬條/秒2、容錯,多種集群模式、可以解決容錯問題3、消息重試發(fā)送4、順序消息可以嚴格執(zhí)行缺點:1消息重復、消費端需要做去重操作2、5選用結論從工程業(yè)務與團隊技術偏向考慮,我們應該需要一種數據平安性比擬高,保證每個消息都會被執(zhí)行;有容錯機制、支持集群模式高可用;性能不錯,可以在毫秒級處理消息;支持順序 消息的消息中間件, RockerMq可以滿足這些要求。3、RockerMq 簡介3、1 RockerMq產品介紹參考阿里公司提供的RocketMQ開發(fā)指南”,最新版針對 v3.2.43、2 RockerMq 集群3、2、1部署方式Rockermq共有四種部署方式,分別

4、是:1、單個 Master一旦Broker重啟或者宕機時,會導致整個效勞不可用2、 多 Master模式一個集群無 Slave,全是 Master,例如 2個 Master戒者 3個 Master 優(yōu)點:1、配置簡單,2、 容錯,單個 Master宕機或重啟維護對應用無影響,在磁盤配置為RAID10時,即使機器宕機不可恢復情況下,由于RAID10磁盤非常可靠,在同步刷盤時消息不會丟,異步刷盤喪失少量消息,3、性能最高。3、多 Master多Slave模式,異步復制每個 Master配置一個或多個 Slave,有多對 Master-Slave HA高可用集群采用異步復 制方式,主備有短暫消息延遲

5、,毫秒級。優(yōu)點:1、即使磁盤損壞,消息喪失的非常少,消息實時性不會被影響,因為Master宕機后,消費者仍然可以從 Slave消費,此過程對應用透明。不需要人工干預。性能同多Master模式幾乎一樣。缺點:1、 Master宕機,磁盤損壞時,因為主備有短暫消息延遲,未復制到slave的消息會喪失。2、 目前master宕機后,備機不能自動切換為主機。只有master可以接收消息,假設所有 master宕機,將不能接收消息4、多 Master多Slave模式,同步雙寫每個 Master配置一個或多個 Slave有多對 Master-Slave HA采用同步雙寫方式,主備都 寫成功,才返回成功。優(yōu)

6、點:數據與效勞都無單點,Master宕機情冴下,消費者可以從slave消費、消息無延遲,效勞可用性與數據可用性都非常高缺點:1性能比異步復制模式略低,収送單個消息的RT返回時間會略高。2、目前master宕機后,備機不能自動切換為主機。只有master可以接收消息,假設所有master宕機,將不能接收消息選用結論由于我們需要保證消息中間件的高可用性,消息不喪失、消息無延遲,所以我們選擇“多 Master多Slave模式,同步雙寫模式。并且選擇同步刷盤。3、2、2 多 Master多 Slave模式多master多slave模式網絡構造圖主要組件有: Name Server、Broker、Pro

7、ducer、Consumer1 Name Server是一個幾乎無狀態(tài)節(jié)點,可集群部署,節(jié)點之間無信息同步、記錄Topic路由信息。2、 Broker分為 Master和Slave 一個 Master可以對應多個 Slave但是一個 Slave只能對應 一個 Master。3、Producer與Name Server集群中的其中一個節(jié)點隨機選擇建立長連接,定期從 Name Server獲取Topic路由信息,并向提供 Topic效勞的Master建立長連接,定時向 Master發(fā) 送心跳。Producer只可以向Master發(fā)送消息。Producer完全無狀態(tài),可集群部署。4、 Consume

8、r與Name Server集群中的其中一個節(jié)點隨機選擇建立長連接,定期從NameServer獲取Topic路由信息,并與提供Topic效勞的Master、Slave建立長連接,并定時向Master、Slave収送心跳。Consumer既可以從 Master訂閱消息,也可以從Slave訂閱消息,訂閱規(guī)那么由Broker配置決定3、3集群搭建linux環(huán)境下部署rocketMq多master多slave模式、同步雙寫模式集群, 暫定為2個master, 2個slave3、3、1安裝條件4 臺 linux 效勞器、分為 master-a slave-a ; master-b slave-b效勞器防火

9、墻開啟9876, 10911lokkit -p 9876:tcp -p 10911:tcp效勞器支持wget命令效勞器安裝jdk,不低于使用的rocketMq的支持版本3、3、2安裝步驟4 臺 linux 效勞器、分為 master-a slave-a ; master-b slave-b假設ip分別為:master-a =slave- a =master-b =slave-b =3、3、2、1 master-a1從github下載RocketMQ安裝包或源碼自編譯安裝wget s:/github./alibaba

10、/RocketMQ/releases/download/v3.2.6/alibaba-rocketmq-3.2.6.tar.gz2解壓縮、并創(chuàng)立數據、日志目錄tar - xvf alibaba-rocketmq-3.2.2.tar.gz3配置環(huán)境變量:系統(tǒng)變量:Vi /etc/profile或者修改當前用戶的環(huán)境變量例如:export ROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexport PATH=$PATH:$ROCKETMQ_HOME/binsource命令是環(huán)境變量生效4修改mq集群的master-a配置修改文件 $ROCKETMQ_HOM

11、E/conf/2m-2s-sync/perties不是強制必須使用這個文件,使用者可以自行定義* brokerClusterName=DefaultClusterbrokerName=broker-a *歸屬 master-slave組的名字brokerId=0 *0 表示為 master-slave組中為 masternamesrvAddr=:9876;:9876;:9876;:9876 *nameserv defaultTopicQueueNums=4autoCreateTopicEna

12、ble=trueautoCreateSubscriptionGroup=truelistenPort=10911 *Broker對外效勞的監(jiān)聽端口deleteWhen=04fileReservedTime=120mapedFileSizemitLog=1073741824 mapedFileSizeConsumeQueue=50000000 destroyMapedFileIntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88storePathRootDir=/opt/RocketMQ/a

13、libaba-rocketmq/data* 數據目錄storePathmitLog=/opt/RocketMQ/alibaba-rocketmq/logs * 日志目錄 maxMessageSize=65536flushmitLogLeastPages=4flushConsumeQueueLeastPages=2 flushmitLogThoroughInterval=10000 flushConsumeQueueThoroughInterval=60000 checkTransactionMessageEnable=falsesendMessageThreadPoolNums=128pull

14、MessageThreadPoolNums=128brokerRole=SYNC_MASTER即可 brokerClusterName=DefaultClusterbrokerName=broker-a *歸屬 master-slave組的名字brokerId=1 *1 表示在 master-slave組中為 slavenamesrvAddr=:9876;:9876;:9876;:9876 defaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubs

15、criptionGroup=truelistenPort=10911 * 對外端口deleteWhen=04fileReservedTime=120mapedFileSizemitLog=1073741824mapedFileSizeConsumeQueue=50000000destroyMapedFileIntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88 storePathRootDir=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rock

16、etmq/data* 數據存放storePathmitLog=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rocketmq/logs * 日志存放 maxMessageSize=65536角色同步雙寫 MasterflushDiskType=SYNC_FLUSH* 同步刷盤brokerlP1=*本機IP地址,多網卡易出錯,請手工指定其他配置請參考RocketMQ開發(fā)指南”,最新版針對 v3.2.45 啟動 mq 集群的 master-a 跳轉到 RocketMQ的bin目錄下cd $ROCKETMQ_HOME/bi nn ohup

17、 sh mqn amesrv &n ohup sh mqbroker-c $ROCKETMQ_HOME/co nf/2m-2s-sy nc/perties &3、3、2、2 slave-a1從github下載RocketMQ安裝包或源碼自編譯安裝|wget s:/github./alibaba/RocketMQ/releases/download/v3.2.2/alibaba-rocketmq-3.2.2.tar.gz2解壓縮、并創(chuàng)立數據、日志目錄tar - xvf alibaba-rocketmq-3.2.2.tar.gz3配置環(huán)境變量例如:export ROCKET

18、MQ_HOME=/opt/RocketMQ/alibaba-rocketmqexport PATH=$PATH:$ROCKETMQ_HOME/binsource命令是環(huán)境變量生效4修改mq集群的slave-a配置修改文件 $ROCKETMQ_HOME/conf/2m-2s-sync/perties不是強制必須使用這個文件,使用者可以自行定義、只要保證配置文件的brokerName正確 flushmitLogLeastPages=4 flushConsumeQueueLeastPages=2 flushmitLogThoroughlnterval=10000 flus

19、hConsumeQueueThoroughlnterval=60000 checkTransactionMessageEnable=false sendMessageThreadPoolNums=128 pullMessageThreadPoolNums=128 brokerRole=SLAVE *角色 Slave flushDiskType=SYNC_FLUSH * 同步刷盤 brokerlP1= *本機ip,多網卡,建議自定義其他配置請參考RocketMQ開發(fā)指南”,最新版針對v3.2.45 啟動 mq 集群的 slave-a跳轉到RocketMQ的bin目錄下cd $

20、ROCKETMQ_HOME/bi nn ohup sh mqn amesrv &n ohup sh mqbroker-c $ROCKETMQ_HOME/co nf/2m-2s-sy nc/perties &3、3、2、3 master-b1從github下載RocketMQ安裝包或源碼自編譯安裝wget s:/github./alibaba/RocketMQ/releases/download/v3.2.2/alibaba-rocketmq-3.2.2.tar.gz2解壓縮、并創(chuàng)立數據、日志目錄tar - xvf alibaba-rocketmq-3.2.2.tar

21、.gz3配置環(huán)境變量例如:export ROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexport PATH=$PATH:$ROCKETMQ_HOME/binsource命令是環(huán)境變量生效4修改mq集群的master-b配置修改文件 $ROCKETMQ_HOME/conf/2m-2s-sync/perties不是強制必須使用這個文件,使用者可以自行定義* brokerClusterName=DefaultClusterbrokerName=broker-b *歸屬 master-slave組的名字brokerId=0 *0 表示

22、為 master-slave組中為 masternamesrvAddr=:9876;:9876;:9876;:9876 *nameserv defaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911 *Broker對外效勞的監(jiān)聽端口deleteWhen=04fileReservedTime=120mapedFileSizemitLog=1073741824mapedFileSize

23、ConsumeQueue=50000000destroyMapedFileIntervalForcibly=120000redeleteHangedFilelnterval=120000diskMaxUsedSpaceRatio=88storePathRootDir=/opt/RocketMQ/alibaba-rocketmq/data* 數據目錄storePathmitLog=/opt/RocketMQ/alibaba-rocketmq/logs * 日志目錄 maxMessageSize=65536flushmitLogLeastPages=4flushConsumeQueueLeastP

24、ages=2flushmitLogThoroughlnterval=10000flushConsumeQueueThoroughlnterval=60000checkTransactionMessageEnable=falsesendMessageThreadPoolNums=128pullMessageThreadPoolNums=128brokerRole=SYNC_MASTER*角色同步雙寫 MasterflushDiskType=SYNC_FLUSH* 同步刷盤brokerlP1=*本機IP地址,多網卡易出錯,請手工指定其他配置請參考RocketMQ開發(fā)指南”,最新

25、版針對 v3.2.45 啟動 mq 集群的 master-b跳轉到RocketMQ的bin目錄下cd $ROCKETMQ_HOME/bi nn ohup sh mqn amesrv &n ohup sh mqbroker-c $ROCKETMQ_HOME/co nf/2m-2s-sy nc/perties &3、3、2、4 slave-b1從github下載RocketMQ安裝包或源碼自編譯安裝|wget s:/github./alibaba/RocketMQ/releases/download/v3.2.2/alibaba-rocketmq-3.2.2.tar.gz2

26、解壓縮、并創(chuàng)立數據、日志目錄tar - xvf alibaba-rocketmq-3.2.2.tar.gz3配置環(huán)境變量例如:export ROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexport PATH=$PATH:$ROCKETMQ_HOME/binsource命令是環(huán)境變量生效4修改mq集群的slave-a配置修改文件 $ROCKETMQ_HOME/conf/2m-2s-sync/perties不是強制必須使用這個文件,使用者可以自行定義、只要保證配置文件的brokerName正確即可* brokerCluster

27、Name=DefaultClusterbrokerName=broker-b *歸屬 master-slave組的名字brokerld=1 *1 表示在 master-slave組中為 slavenamesrvAddr=:9876;:9876;:9876;:9876defaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911 * 對外端口deleteWhen=04fileReservedTime=120mapedFileSizemitLog=1073741824mapedFileSizeConsumeQueue=50000000destroyMapedFilelntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88 storePathRootDir=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rocketmq/data * 數據存放 storePathmitL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論