版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
消息隊列實施方案1、 背景異步解耦合、給前端系統(tǒng)提供最高效的反應2、 常見消息隊列對此2、1ActiveMqActiveMQ是一個完全支持JMS1.1和J2EE1.4規(guī)的JMSProvider實現(xiàn)優(yōu)點:Java語言支持集群模式缺點:性能在消息中間件中處于下游2、2RabbitmqRabbitmq是基于AMQP使用erlang語言實現(xiàn)的消息隊列系統(tǒng)優(yōu)點:1、 完整的消息隊列系統(tǒng),支持多種消息隊列模式,包括競爭消費;2、 支持集群模式,擴展集群容量和性能比較方便,集成了集群的監(jiān)控和管理;3、 支持消息的持久化;缺點:1、 需要學習比較復雜的核口和協(xié)議,比較耗費時間;2、 性能不是特別理想大概在1wqps左右;3、 使用Erlang語言,語言基礎;2、3KafkaKafka是LinkedIn開發(fā)的一個高性能、分布式的消息發(fā)布訂閱系統(tǒng)。優(yōu)點:1、 分布式集群可以透明的擴展,增加新的服務器進集群。2、 高性能。單機寫入TPS約在百萬條/秒3、 容錯。數(shù)據(jù)都會復制到凡臺服務器上。缺點:1、復雜性。Kafka需要zookeeper集君吊的支持,Topic通常需要人工來創(chuàng)建,部署和維護較一般消息隊列成本更高定位于日志傳輸、存在消息丟失的肯能、消息亂序3、消息發(fā)送錯誤無重試2、4RocketMQRockerMq是阿里公司中間件團隊參考Kafka思想,用Java語言實現(xiàn)的消息傳輸系統(tǒng)優(yōu)點:1、 較高性能,單機寫入TPS單賣例約7萬條/秒2、 容錯,多種集群模式、可以解決容錯問題3、 消息重試發(fā)送4、 順序消息可以嚴格執(zhí)行缺點:1、消息重復、消費端需要做去重操作2、5選用結論從項目業(yè)務與團隊技術偏向考慮,我們應該需要一種數(shù)據(jù)安全性比較高,保證每個消息都會被執(zhí)行;有容錯機制、支持集群模式高可用;性能不錯,可以在毫秒級處理消息;支持順序消息的消息中間件,RockerMq可以滿足這些要求。RockerMq簡介3、1RockerMq產品企紹參考阿里公司提供的《RocketMQ開發(fā)指南》,最新版針對v3.2.43、2RockerMq集群3、2、1部署方式Rockermq共有四種部署方式,分別是:1、 單個Master一旦Broker重啟或者宕機時,會導致整個服務不可用2、 多Master模式一個集君吊無Slave,全是Master,例如2個Master戒者3個Master優(yōu)點:1、 配置簡單,2、 容錯,單個Master宕機或重啟維護對應用無影響,在磁盤配置為RA1D10時,即使機器宕機不可恢復情況下,由于RA1D10磁盤非常可靠,在同步刷盤時消息不會妥,異步刷盤丟失少量消息,3、 性能最高。3、多Master多Slave模式,異步復制每個Master配置一個或多個Slave,有多對Master-Slave,HA(高可用集群吊)采用異步復制方式,主備有短暫消息延遲,毫秒級。優(yōu)點:1、即使磁盤損壞,消息丟失的非常少,消息賣時性不會被影響,因為Master宕機后,消費者仍然可以從Slave消費,此過程對應用透明。不需要人工干預。性能同多Master模式凡乎一樣。缺點:1、 Master宕機,磁盤損壞時,因為主備有短暫消息延遲,未復制到slav。的消息會丟失。2、 目前master宕機后,備機不能自動切換為主機。只有master可以接收消息,若所有master宕機,將不能接收消息4、多Master多Slave模式,同步雙寫每個Master配置一個或多個Slave,有多對Master-Slave,HA采用同步雙寫方式,主備都寫成功,才返回成功。優(yōu)點:數(shù)據(jù)與服務都無單點,Master宕機情呀下,消費者可以從slave消費、消息無延遲,服務可用性與數(shù)據(jù)可用性都非常高缺點:1、 性能比異步復制模式略低,U又送單個消息的RT(返回時問)會略高。2、 目前master宕機后,備機不能自動切換為主機。只有master可以接收消息,若所有master宕機,將不能接收消息選用結論由于我們需要保證消息中間件的高可用性,消息不丟失、消息無延遲,所以我們選擇“多Master多Slave模式,同步雙寫”模式。并且選擇同步刷盤。3、2、2多Master多Slave模式Broker BrokerMaster! Slaves多master多slave模式網絡結構圖主要組件有:NameServer、Broker、Producer,Consumer1、NameServer是一個凡乎無狀態(tài)節(jié)點,可集君吊部署,節(jié)點之間無信息同步、記錄Topic路由信息。2、 Broker分為Master和Slave,—個Master可以對應多個Slave,但是一個Slave只能對應一個Master。3、 Producer與NameServer集君吊中的其中一個節(jié)點(隨機選擇)建立長連接,定期從NameServer獲取Topic路由信息,并向提供Topic服務的Master建立長連接,定時向Master發(fā)送心跳。Producer只可以向Master發(fā)送消息。Producer完全無狀態(tài),可集■君吊部署。4、 Consumer與NameServer集君吊中的其中一個節(jié)點(隨機選擇)建立長連接,定期從NameServer獲取Topic路由信息,并與提供Topic服務的Master、Slave建立長連接,并定時向Master、SIaveU又送心跳。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服務器防火墻開啟9876,10911lokkit-p9876:tcp-p10911: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、1master-a1從github下載RocketMQ安裝包或源碼有編譯安裝wgethttps://github./alibaba/RocketMQ/releases/download/v3.2.6/alibaba-rocketmq-3.2.6.tar.gz2解壓縮、并創(chuàng)建數(shù)據(jù)、日志目錄tar-xvfalibaba-rocketmq-3.2.2.tar.gz3配置環(huán)境變量:系統(tǒng)變量:Vi/etc/profile或者修改當前用戶的環(huán)境變量例如:exportROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexportPATH=${PATH}:${ROCKETMQ_HOME}/binsource命令是環(huán)境變量生效4修改mq集君吊的master-a配置修改文件$ROCKETMQ_HOME/conf/2m-2s-sync/perties不是強制必須使用這個文件,使用者可以自行定義#brokerClusterName=DefaultClusterbrokerName=broker-a#歸屬master-slave組的名字brokerId=0#0表示為master-slave組中為masternamesrvAddr=:9876;:9876;:9876;:9876#nameservdefaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911#Broker對外服務的監(jiān)聽端口deleteWhen=04fileReservedTime=120mapedFileSizeCommitLog=1073741824mapedFileSizeConsumeQueue=50000000destroyMapedFileIntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88storePathRootDir=/opt/RocketMQ/alibaba-rocketmq/data#數(shù)據(jù)目錄storePathCommitLog=/opt/RocketMQ/alibaba-rocketmq/logs#日志目錄maxMessageSize=65536flushCommitLogLeastPages=4flushConsumeQueueLeastPages=2flushCommitLogThoroughInterval=10000flushConsumeQueueThoroughInterval=60000checkTransactionMessageEnable=falsesendMessageThreadPoolNums=128pullMessageThreadPoolNums=128brokerRole=SYNC_MASTER#角色同步雙寫MasterflushDiskType=SYNC_FLUSH#同步刷盤brokerIP1= #本機IP地址,多網卡易出錯,請手工指定其他配置請參考《RocketMQ開發(fā)指南》,最新版針對v3.2.45啟動mq集君吊的master-a跳轉到RocketMQ的bin目錄下>cd$ROCKETMQ_HOME/bin>nohupshmqnamesrv&>nohupshmqbroker-c$ROCKETMQ_HOME/conf/2m-2s-sync/perties&3、3、2、2slave-a1從github下載RocketMQ安裝包或源碼有編譯安裝wgethttps://github./alibaba/RocketMQ/releases/download/v3.2.2/alibaba-rocketmq-3.2.2.tar.gz2解壓縮、并創(chuàng)建數(shù)據(jù)、日志目錄tarxvfalibaba-rocketmq-3.2.2.tar.gz3配置環(huán)境變量例如:exportROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexportPATH=${PATH}:${ROCKETMQ_HOME}/binsource命令是環(huán)境變量生效4修改mq集君吊的slave-a配置修改文件$ROCKETMQ_HOME/conf/2m-2s-sync/perties不是強制必須使用這個文件,使用者可以自行定義、只要保證配置文件的brokerName正確即可#brokerClusterName=DefaultClusterbrokerName=broker-a#歸屬master-slave組的名字brokerId=1#1表示在master-slave組中為slavenamesrvAddr=:9876;:9876;:9876;:9876defaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911#對外端口deleteWhen=04fileReservedTime=120mapedFileSizeCommitLog=1073741824mapedFileSizeConsumeQueue=50000000destroyMapedFileIntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88storePathRootDir=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rocketmq/data#數(shù)據(jù)存放storePathCommitLog=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rocketmq/logs#日志存放maxMessageSize=65536flushCommitLogLeastPages=4flushConsumeQueueLeastPages=2flushCommitLogThoroughInterval=10000flushConsumeQueueThoroughInterval=60000checkTransactionMessageEnable=falsesendMessageThreadPoolNums=128pullMessageThreadPoolNums=128brokerRole=SLAVE#角色SlaveflushDiskType=SYNC_FLUSH#同步刷盤brokerIP1=#本機ip,多網卡,建議有定義其他配置請參考《RocketMQ開發(fā)指南》,最新版針對v3.2.45啟動mq集群的slave-a跳轉到RocketMQ的bin目錄下>cd$ROCKETMQ_HOME/bin>nohupshmqnamesrv&>nohupshmqbroker-c$ROCKETMQ_HOME/conf/2m-2s-sync/perties&3、3、2、3master-b1從github下載RocketMQ安裝包或源碼有編譯安裝wgethttps://github./alibaba/RocketMQ/releases/download/v3.2.2/alibaba-rocketmq-3.2.2.tar.gz2解壓縮、并創(chuàng)建數(shù)據(jù)、日志目錄tarxvfalibaba-rocketmq-3.2.2.tar.gz3配置環(huán)境變量例如:exportROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexportPATH=${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表示為master-slave組中為masternamesrvAddr=:9876;:9876;:9876;:9876#nameservdefaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911#Broker對外服務的監(jiān)聽端口deleteWhen=04fileReservedTime=120mapedFileSizeCommitLog=1073741824mapedFileSizeConsumeQueue=50000000destroyMapedFileIntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88storePathRootDir=/opt/RocketMQ/alibaba-rocketmq/data#數(shù)據(jù)目錄storePathCommitLog=/opt/RocketMQ/alibaba-rocketmq/logs#日志目錄maxMessageSize=65536flushCommitLogLeastPages=4flushConsumeQueueLeastPages=2flushCommitLogThoroughInterval=10000flushConsumeQueueThoroughInterval=60000checkTransactionMessageEnable=falsesendMessageThreadPoolNums=128pullMessageThreadPoolNums=128brokerRole=SYNC_MASTER#角色同步雙寫MasterflushDiskType=SYNC_FLUSH#同步刷盤brokerIP1= #本機IP地址,多網卡易出錯,請手工指定其他配置請參考《RocketMQ開發(fā)指南》,最新版針對v3.2.45啟動mq集群的master-b跳轉到RocketMQ的bin目錄下>cd$ROCKETMQ_HOME/bin>nohupshmqnamesrv&>nohupshmqbroker-c$ROCKETMQ_HOME/conf/2m-2s-sync/perties&3、3、2、4slave-b1從github下載RocketMQ安裝包或源碼有編譯安裝wgethttps://github./alibaba/RocketMQ/releases/download/v3.2.2/alibaba-rocketmq-3.2.2.tar.gz2解壓縮、并創(chuàng)建數(shù)據(jù)、日志目錄tarxvfalibaba-rocketmq-3.2.2.tar.gz3配置環(huán)境變量例如:exportROCKETMQ_HOME=/opt/RocketMQ/alibaba-rocketmqexportPATH=${PATH}:${ROCKETMQ_HOME}/binsource命令是環(huán)境變量生效4修改mq集君吊的slave-a配置修改文件$ROCKETMQ_HOME/conf/2m-2s-sync/perties不是強制必須使用這個文件,使用者可以自行定義、只要保證配置文件的brokerName正確即可#brokerClusterName=DefaultCluster#歸屬#歸屬master-slave組的名字brokerId=1#1表示在master-slave組中為slavenamesrvAddr=:9876;:9876;:9876;:9876defaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911#對外端口deleteWhen=04fileReservedTime=120mapedFileSizeCommitLog=1073741824mapedFileSizeConsumeQueue=50000000destroyMapedFileIntervalForcibly=120000redeleteHangedFileInterval=120000diskMaxUsedSpaceRatio=88storePathRootDir=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rocketmq/data#數(shù)據(jù)存放storePathCommitLog=/aifs01/users/tstusr12/opt/RocketMQ/alibaba-rocketmq/logs#日志存放maxMessageSize=65536flushCommitLogLeastPages=4flushConsumeQueueLeastPages=2flushCommitLogThoroughInterval=10000flushConsumeQueueThoroughInterval=60000checkTransactionMessageEnable=falsesendMessageThreadPoolNums=128pullMessageThreadPoolNums=128brokerRole=SLAVE#角色
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 陶藝教學總結
- 我長大了初中記敘文
- 幼兒園小班衛(wèi)生保健總結
- 2023屆新高考新教材化學魯科版一輪學案-第1章第2講 物質的量濃度及其溶液的配制
- 2025年中國氫燃料電池車行業(yè)發(fā)展現(xiàn)狀、進出口貿易及市場規(guī)模預測報告
- 供貨定點合同范本
- 科室租賃合同范本
- 短期住宿合同范本
- 2023年臨沂高新區(qū)選聘工作人員考試真題
- 2023年湖州德清縣衛(wèi)生健康系統(tǒng)引進高層次醫(yī)療衛(wèi)生人才考試真題
- GB/T 17892-2024優(yōu)質小麥
- 調酒初級基礎理論知識單選題100道及答案解析
- 第5課用發(fā)展的觀點看問題2023-2024學年中職高教版2023哲學與人生
- 危廢治理項目經驗-危廢治理案例分析
- 南京市2024-2025學年六年級上學期11月期中調研數(shù)學試卷二(有答案)
- 2021大學生個人職業(yè)生涯規(guī)劃書6篇
- 汽車防凍液中毒
- 粉條產品購銷合同模板
- 2024至2030年中國自動車配件行業(yè)投資前景及策略咨詢研究報告
- 2024-2030年中國蔗糖行業(yè)市場深度調研及發(fā)展趨勢與投資前景研究報告
- 北師版 七上 數(shù)學 第四章 基本平面圖形《角-第2課時 角的大小比較》課件
評論
0/150
提交評論