版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
消息隊(duì)列實(shí)施方案1、 背景異步解耦合、給前端系統(tǒng)提供最高效的反應(yīng)2、 常見(jiàn)消息隊(duì)列對(duì)此2、1ActiveMqActiveMQ是一個(gè)完全支持JMS1.1和J2EE1.4規(guī)的JMSProvider實(shí)現(xiàn)優(yōu)點(diǎn):Java語(yǔ)言支持集群模式缺點(diǎn):性能在消息中間件中處于下游2、2RabbitmqRabbitmq是基于AMQP使用erlang語(yǔ)言實(shí)現(xiàn)的消息隊(duì)列系統(tǒng)優(yōu)點(diǎn):1、 完整的消息隊(duì)列系統(tǒng),支持多種消息隊(duì)列模式,包括競(jìng)爭(zhēng)消費(fèi);2、 支持集群模式,擴(kuò)展集群容量和性能比較方便,集成了集群的監(jiān)控和管理;3、 支持消息的持久化;缺點(diǎn):1、 需要學(xué)習(xí)比較復(fù)雜的核口和協(xié)議,比較耗費(fèi)時(shí)間;2、 性能不是特別理想大概在1wqps左右;3、 使用Erlang語(yǔ)言,語(yǔ)言基礎(chǔ);2、3KafkaKafka是LinkedIn開發(fā)的一個(gè)高性能、分布式的消息發(fā)布訂閱系統(tǒng)。優(yōu)點(diǎn):1、 分布式集群可以透明的擴(kuò)展,增加新的服務(wù)器進(jìn)集群。2、 高性能。單機(jī)寫入TPS約在百萬(wàn)條/秒3、 容錯(cuò)。數(shù)據(jù)都會(huì)復(fù)制到凡臺(tái)服務(wù)器上。缺點(diǎn):1、復(fù)雜性。Kafka需要zookeeper集君吊的支持,Topic通常需要人工來(lái)創(chuàng)建,部署和維護(hù)較一般消息隊(duì)列成本更高定位于日志傳輸、存在消息丟失的肯能、消息亂序3、消息發(fā)送錯(cuò)誤無(wú)重試2、4RocketMQRockerMq是阿里公司中間件團(tuán)隊(duì)參考Kafka思想,用Java語(yǔ)言實(shí)現(xiàn)的消息傳輸系統(tǒng)優(yōu)點(diǎn):1、 較高性能,單機(jī)寫入TPS單賣例約7萬(wàn)條/秒2、 容錯(cuò),多種集群模式、可以解決容錯(cuò)問(wèn)題3、 消息重試發(fā)送4、 順序消息可以嚴(yán)格執(zhí)行缺點(diǎn):1、消息重復(fù)、消費(fèi)端需要做去重操作2、5選用結(jié)論從項(xiàng)目業(yè)務(wù)與團(tuán)隊(duì)技術(shù)偏向考慮,我們應(yīng)該需要一種數(shù)據(jù)安全性比較高,保證每個(gè)消息都會(huì)被執(zhí)行;有容錯(cuò)機(jī)制、支持集群模式高可用;性能不錯(cuò),可以在毫秒級(jí)處理消息;支持順序消息的消息中間件,RockerMq可以滿足這些要求。RockerMq簡(jiǎn)介3、1RockerMq產(chǎn)品企紹參考阿里公司提供的《RocketMQ開發(fā)指南》,最新版針對(duì)v3.2.43、2RockerMq集群3、2、1部署方式Rockermq共有四種部署方式,分別是:1、 單個(gè)Master一旦Broker重啟或者宕機(jī)時(shí),會(huì)導(dǎo)致整個(gè)服務(wù)不可用2、 多Master模式一個(gè)集君吊無(wú)Slave,全是Master,例如2個(gè)Master戒者3個(gè)Master優(yōu)點(diǎn):1、 配置簡(jiǎn)單,2、 容錯(cuò),單個(gè)Master宕機(jī)或重啟維護(hù)對(duì)應(yīng)用無(wú)影響,在磁盤配置為RA1D10時(shí),即使機(jī)器宕機(jī)不可恢復(fù)情況下,由于RA1D10磁盤非??煽浚谕剿⒈P時(shí)消息不會(huì)妥,異步刷盤丟失少量消息,3、 性能最高。3、多Master多Slave模式,異步復(fù)制每個(gè)Master配置一個(gè)或多個(gè)Slave,有多對(duì)Master-Slave,HA(高可用集群吊)采用異步復(fù)制方式,主備有短暫消息延遲,毫秒級(jí)。優(yōu)點(diǎn):1、即使磁盤損壞,消息丟失的非常少,消息賣時(shí)性不會(huì)被影響,因?yàn)镸aster宕機(jī)后,消費(fèi)者仍然可以從Slave消費(fèi),此過(guò)程對(duì)應(yīng)用透明。不需要人工干預(yù)。性能同多Master模式凡乎一樣。缺點(diǎn):1、 Master宕機(jī),磁盤損壞時(shí),因?yàn)橹鱾溆卸虝合⒀舆t,未復(fù)制到slav。的消息會(huì)丟失。2、 目前master宕機(jī)后,備機(jī)不能自動(dòng)切換為主機(jī)。只有master可以接收消息,若所有master宕機(jī),將不能接收消息4、多Master多Slave模式,同步雙寫每個(gè)Master配置一個(gè)或多個(gè)Slave,有多對(duì)Master-Slave,HA采用同步雙寫方式,主備都寫成功,才返回成功。優(yōu)點(diǎn):數(shù)據(jù)與服務(wù)都無(wú)單點(diǎn),Master宕機(jī)情呀下,消費(fèi)者可以從slave消費(fèi)、消息無(wú)延遲,服務(wù)可用性與數(shù)據(jù)可用性都非常高缺點(diǎn):1、 性能比異步復(fù)制模式略低,U又送單個(gè)消息的RT(返回時(shí)問(wèn))會(huì)略高。2、 目前master宕機(jī)后,備機(jī)不能自動(dòng)切換為主機(jī)。只有master可以接收消息,若所有master宕機(jī),將不能接收消息選用結(jié)論由于我們需要保證消息中間件的高可用性,消息不丟失、消息無(wú)延遲,所以我們選擇“多Master多Slave模式,同步雙寫”模式。并且選擇同步刷盤。3、2、2多Master多Slave模式Broker BrokerMaster! Slaves多master多slave模式網(wǎng)絡(luò)結(jié)構(gòu)圖主要組件有:NameServer、Broker、Producer,Consumer1、NameServer是一個(gè)凡乎無(wú)狀態(tài)節(jié)點(diǎn),可集君吊部署,節(jié)點(diǎn)之間無(wú)信息同步、記錄Topic路由信息。2、 Broker分為Master和Slave,—個(gè)Master可以對(duì)應(yīng)多個(gè)Slave,但是一個(gè)Slave只能對(duì)應(yīng)一個(gè)Master。3、 Producer與NameServer集君吊中的其中一個(gè)節(jié)點(diǎn)(隨機(jī)選擇)建立長(zhǎng)連接,定期從NameServer獲取Topic路由信息,并向提供Topic服務(wù)的Master建立長(zhǎng)連接,定時(shí)向Master發(fā)送心跳。Producer只可以向Master發(fā)送消息。Producer完全無(wú)狀態(tài),可集■君吊部署。4、 Consumer與NameServer集君吊中的其中一個(gè)節(jié)點(diǎn)(隨機(jī)選擇)建立長(zhǎng)連接,定期從NameServer獲取Topic路由信息,并與提供Topic服務(wù)的Master、Slave建立長(zhǎng)連接,并定時(shí)向Master、SIaveU又送心跳。Consumer既可以從Master訂閱消息,也可以從Slave訂閱消息,訂閱規(guī)則由Broker配置決定3、3集群搭建linux環(huán)境下部署rocketMq多master多slave模式、同步雙寫模式集君吊,暫定為2個(gè)master,2個(gè)slave3、3、1安裝條件4臺(tái)linux月艮務(wù)器、分為master-a、slave-a;master-b、slave-b服務(wù)器防火墻開啟9876,10911lokkit-p9876:tcp-p10911:tcp服務(wù)器支持wget命令服務(wù)器安裝jdk,不低于使用的rocketMq的支持版本3、3、2安裝步驟4臺(tái)linux月艮務(wù)器、分為master-a、slave-a;master-b、slave-b假設(shè)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或者修改當(dāng)前用戶的環(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不是強(qiáng)制必須使用這個(gè)文件,使用者可以自行定義#brokerClusterName=DefaultClusterbrokerName=broker-a#歸屬master-slave組的名字brokerId=0#0表示為master-slave組中為masternamesrvAddr=:9876;:9876;:9876;:9876#nameservdefaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911#Broker對(duì)外服務(wù)的監(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= #本機(jī)IP地址,多網(wǎng)卡易出錯(cuò),請(qǐng)手工指定其他配置請(qǐng)參考《RocketMQ開發(fā)指南》,最新版針對(duì)v3.2.45啟動(dòng)mq集君吊的master-a跳轉(zhuǎn)到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不是強(qiáng)制必須使用這個(gè)文件,使用者可以自行定義、只要保證配置文件的brokerName正確即可#brokerClusterName=DefaultClusterbrokerName=broker-a#歸屬master-slave組的名字brokerId=1#1表示在master-slave組中為slavenamesrvAddr=:9876;:9876;:9876;:9876defaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911#對(duì)外端口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=#本機(jī)ip,多網(wǎng)卡,建議有定義其他配置請(qǐng)參考《RocketMQ開發(fā)指南》,最新版針對(duì)v3.2.45啟動(dòng)mq集群的slave-a跳轉(zhuǎn)到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不是強(qiáng)制必須使用這個(gè)文件,使用者可以自行定義#brokerClusterName=DefaultClusterbrokerName=broker-b#歸屬master-slave組的名字brokerId=0#0表示為master-slave組中為masternamesrvAddr=:9876;:9876;:9876;:9876#nameservdefaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911#Broker對(duì)外服務(wù)的監(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= #本機(jī)IP地址,多網(wǎng)卡易出錯(cuò),請(qǐng)手工指定其他配置請(qǐng)參考《RocketMQ開發(fā)指南》,最新版針對(duì)v3.2.45啟動(dòng)mq集群的master-b跳轉(zhuǎn)到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不是強(qiáng)制必須使用這個(gè)文件,使用者可以自行定義、只要保證配置文件的brokerName正確即可#brokerClusterName=DefaultCluster#歸屬#歸屬master-slave組的名字brokerId=1#1表示在master-slave組中為slavenamesrvAddr=:9876;:9876;:9876;:9876defaultTopicQueueNums=4autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truelistenPort=10911#對(duì)外端口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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫州2025年浙江溫州市公安局洞頭區(qū)分局第三期招聘編外用工筆試歷年參考題庫(kù)附帶答案詳解
- 江蘇2025年江蘇省林業(yè)局所屬事業(yè)單位招聘7人筆試歷年參考題庫(kù)附帶答案詳解
- 攀枝花2025年四川攀枝花學(xué)院招聘事業(yè)編制工作人員23人筆試歷年參考題庫(kù)附帶答案詳解
- 廣東2025年廣東美術(shù)館招聘工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 寧波浙江寧波市經(jīng)濟(jì)和信息化局直屬事業(yè)單位招聘事業(yè)編制工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 吉安2025年江西井岡山國(guó)家級(jí)自然保護(hù)區(qū)管理局專業(yè)森林消防隊(duì)招聘筆試歷年參考題庫(kù)附帶答案詳解
- 亳州2025年安徽亳州渦陽(yáng)縣新任教師招聘146人筆試歷年參考題庫(kù)附帶答案詳解
- 公司招聘制度管理制度
- 2026年提升生活品質(zhì)從飲食開始公共營(yíng)養(yǎng)膳食實(shí)踐練習(xí)題集
- 職業(yè)性眼外傷的精準(zhǔn)康復(fù)方案優(yōu)化
- 人防車位管理合同協(xié)議書
- DB37-T2119-2025轉(zhuǎn)爐煤氣干法電除塵系統(tǒng)安全技術(shù)要求
- 西方樂(lè)理與其他樂(lè)理對(duì)比試題及答案
- 《金融大數(shù)據(jù)分析》-課件 第3章 線性回歸
- 廣東省佛山市2024-2025學(xué)年高二上學(xué)期期末考試 語(yǔ)文 含解析
- 中藥材及中藥飲片知識(shí)培訓(xùn)
- 2024年臺(tái)州三門農(nóng)商銀行招聘筆試真題
- 高一政治必修1、必修2基礎(chǔ)知識(shí)必背資料
- DB4114T 105-2019 黃河故道地區(qū)蘋果化學(xué)疏花疏果技術(shù)規(guī)程
- 如何高效向GPT提問(wèn)
- JT-T-969-2015路面裂縫貼縫膠
評(píng)論
0/150
提交評(píng)論