網(wǎng)站開發(fā)和桌面開發(fā)哪個難百度搜索熱詞查詢
RocketMQ 領(lǐng)域模型
RockeMQ整體結(jié)構(gòu)預(yù)覽
RocketMQ 中的一些概念
Topic:主題,可以理解為類別、分類的概念
MessageQueue:消息隊列,存儲數(shù)據(jù)的一個容器(隊列索引數(shù)據(jù)),默認(rèn)每個 Topic 下有 4 個隊列被分配出來存儲消息。
Message:消息,真正攜帶信息的載體概念
Producer:生產(chǎn)者,負(fù)責(zé)發(fā)送消息
Consumer:消費者,負(fù)責(zé)消費消息
ConsumerGroup:眾多消費者構(gòu)成的整體或構(gòu)成的集群,稱之為消費者組。
Subscription:訂閱關(guān)系,消費者得知道自己需要消費哪個 Topic 下的哪個隊列的數(shù)據(jù)
RocketMQ 單機服務(wù)搭建
二進(jìn)制下載主頁
啟動文檔
我這里使用docker,具體的啟動參數(shù)我沒有研究只是搭建一個可用的跑案例:
docker run -d -p 9876:9876 -v /env/liyong/data/docker/rocketmq/namesrv/logs:/root/logs -v /env/liyong/data/docker/rocketmq/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" apache/rocketmq:5.1.4 sh mqnamesrvdocker run -d -p 10911:10911 -p 10909:10909 -v /env/liyong/data/docker/rocketmq/broker/logs:/root/logs -v /env/liyong/data/docker/rocketmq/broker/store:/root/store -v /env/liyong/data/docker/rocketmq/broker/conf/broker.conf:/opt/rocketmq/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=100000000" -e "JAVA_OPT_EXT=-server -Xms1g -Xmx1g -Xmn512m" apache/rocketmq:5.1.4 sh mqbroker -c /opt/rocketmq/conf/broker.conf
#控制臺
docker run -d --name rmqconsole -p 9800:8080 --link rmqnamesrv:namesrv -e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -t apacherocketmq/rocketmq-dashboard
#broker.conf
#這段配置是我網(wǎng)上找的,如果是要生產(chǎn)環(huán)境使用的話可以再研究一下官方文檔
# 所屬集群名稱,如果節(jié)點較多可以配置多個
brokerClusterName = DefaultCluster
#broker名稱,master和slave使用相同的名稱,表明他們的主從關(guān)系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示幾點做消息刪除動作,默認(rèn)是凌晨4點
deleteWhen = 04
#在磁盤上保留消息的時長,單位是小時
fileReservedTime = 48
#有三個值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和異步表示Master和Slave之間同步數(shù)據(jù)的機制;
brokerRole = ASYNC_MASTER
#刷盤策略,取值為:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盤和異步刷盤;SYNC_FLUSH消息寫入磁盤后才返回成功狀態(tài),ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
# 設(shè)置broker節(jié)點所在服務(wù)器的ip地址 我這邊直接給的服務(wù)器的外網(wǎng)地址
brokerIP1 = 111.229.199.181
# 磁盤使用達(dá)到95%之后,生產(chǎn)者再寫入消息會報錯 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95
#是否開啟消息軌跡 用于記錄消息
traceTopicEnable=true
需要注意這里如果內(nèi)存不夠是會報異常無法啟動:
指定這個參數(shù)即可 -e “JAVA_OPT_EXT=-server -Xms1g -Xmx1g -Xmn512m”
控制臺看板(如果是云服務(wù)器不要忘記暴露該暴露的端口
):