最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker進行RocketMq集群部署方式

 更新時間:2024年04月01日 14:15:34   作者:快樂敲代碼  
這篇文章主要介紹了docker進行RocketMq集群部署方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

環(huán)境

  • (1)Centos7
  • (2)JDK1.8
  • (3)docker
  • (4)rocketmq 4.8

兩臺服務(wù)器ip

  • A:192.168.5.49
  • B:192.168.5.50

集群模式

1、單節(jié)點 :

  • 優(yōu)點:本地開發(fā)測試,配置簡單,同步刷盤消息一條都不會丟
  • 缺點:不可靠,如果宕機,會導(dǎo)致服務(wù)不可用

2、主從(異步、同步雙寫) :

  • 優(yōu)點:同步雙寫消息不丟失, 異步復(fù)制存在少量丟失 ,主節(jié)點宕機,從節(jié)點可以對外提供消息的消費,但是不支持寫入
  • 缺點:主備有短暫消息延遲,毫秒級,目前不支持自動切換,需要腳本或者其他程序進行檢測然后進行停止broker,重啟讓從節(jié)點成為主節(jié)點

3、雙主:

  • 優(yōu)點:配置簡單, 可以靠配置RAID磁盤陣列保證消息可靠,異步刷盤丟失少量消息
  • 缺點: master機器宕機期間,未被消費的消息在機器恢復(fù)之前不可消費,實時性會受到影響

4、雙主雙從,多主多從模式(異步復(fù)制)我們這里采用這種

  • 優(yōu)點:磁盤損壞,消息丟失的非常少,消息實時性不會受影響,Master 宕機后,消費者仍然可以從Slave消費
  • 缺點:主備有短暫消息延遲,毫秒級,如果Master宕機,磁盤損壞情況,會丟失少量消息

5、雙主雙從,多主多從模式(同步雙寫)

  • 優(yōu)點:同步雙寫方式,主備都寫成功,向應(yīng)用才返回成功,服務(wù)可用性與數(shù)據(jù)可用性都非常高
  • 缺點:性能比異步復(fù)制模式略低,主宕機后,備機不能自動切換為主機

概念

rocketmq分為Name Server和Broker Server

名字服務(wù)(Name Server)

名稱服務(wù)充當(dāng)路由消息的提供者。

生產(chǎn)者或消費者能夠通過名字服務(wù)查找各主題相應(yīng)的Broker IP列表。

多個Namesrv實例組成集群,但相互獨立,沒有信息交換。

是Topic路由注冊中心,端口默認為9876

代理服務(wù)器(Broker Server)

消息中轉(zhuǎn)角色,負責(zé)存儲消息、轉(zhuǎn)發(fā)消息。

代理服務(wù)器在RocketMQ系統(tǒng)中負責(zé)接收從生產(chǎn)者發(fā)送來的消息并存儲、同時為消費者的拉取請求作準備。

代理服務(wù)器也存儲消息相關(guān)的元數(shù)據(jù),包括消費者組、消費進度偏移和主題和隊列消息等。

端口有三個:

  • listenPort:默認10911,接受客戶端連接的監(jiān)聽端口,作為對producer和consumer使用服務(wù)的端口號,可以通過配置文件改
  • haListenPort:默認為listenPort + 1,高可用服務(wù)監(jiān)聽端口,主要用于slave同master同步
  • fastListenPort:默認為listenPort -2, 主要是fastRemotingServer服務(wù)使用,用于VIP通道

部署

1、安裝rmqnamesrv

兩臺的rmqnamesrv都直接運行即可,所有配置都用默認的即可

docker run -d --name rmqnamesrv \
 -v /home/docker/rocketmq/data/namesrv/logs:/home/rocketmq/logs \
 -p 9876:9876 \
 --restart=always \
 apacherocketmq/rocketmq:4.8.0-alpine sh mqnamesrv

2、安裝rmqbroker

docker run -d --name rmqbroker \
 -v /home/docker/rocketmq/data/broker/logs:/home/rocketmq/logs \
 --link rmqnamesrv:namesrv \
 --restart=always \
 -e "NAMESRV_ADDR=namesrv:9876" \
 -p 10909:10909 -p 10911:10911 -p 10912:10912 \
 apacherocketmq/rocketmq:4.8.0-alpine \
 sh mqbroker -c /home/rocketmq/rocketmq-4.8.0/conf/broker.conf

拷貝rmqbroker的配置文件到主機目錄

docker cp rmqbroker:/home/rocketmq/rocketmq-4.8.0/conf /home/docker/rocketmq/data/broker/conf

編輯配置文件broker.conf

#切換到剛剛拷貝出來的文件夾下
cd  /home/docker/rocketmq/data/broker/conf
#編輯主節(jié)點配置文件
sudo vi broker.conf
#編輯從節(jié)點配置文件
sudo vi broker-s.conf

主節(jié)點broker.conf內(nèi)容如下:

# 集群名稱,取同一個
brokerClusterName = docker-mq-cluster

# 節(jié)點名稱,每個主節(jié)點取不一樣的,另一個主節(jié)點我們?nèi)roker-b,如果是主從節(jié)點名稱保持一致
brokerName = broker-a
#brokerName = broker-b

# 主從標識,0為主,其他大于0的為從,從只允許讀,主可以讀寫
brokerId = 0

#未消費的持久化消息清理時間點,默認凌晨4點
deleteWhen = 04

#持久化消息保存周期(單位:小時)
fileReservedTime = 48

#brocker角色,異步主
#- ASYNC_MASTER 異步復(fù)制Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole = ASYNC_MASTER

#刷盤方式:異步刷盤
flushDiskType = ASYNC_FLUSH

#節(jié)點IP
brokerIP1 = 192.168.5.49
#brokerIP1 = 192.168.5.50

#broker的服務(wù)端口
listenPort=10911

#server服務(wù)器地址和端口,多個用分號隔開
namesrvAddr=192.168.5.49:9876;192.168.5.50:9876

#延遲消息等級時間,
#這個設(shè)置也影響全局的消費重試機制的間隔時間,消費重試機制走的就是延遲消息,這里設(shè)置后,第一次重試是在是失敗的10s后(從第三個開始 ,DefaultMQPushConsumerImpl源碼中setDelayTimeLevel(3 + msg.getReconsumeTimes()),舍去了前兩個),第二次是上次失敗的30s后,因為消費重試次數(shù)是16次(DefaultMQPushConsumerImpl源碼默認是16次),而我們30s后面沒有設(shè)置了,他后面的13次都會按30s間隔去重試
messageDelayLevel = 1s 5s 10s 30s

從節(jié)點broker-s.conf內(nèi)容如下:

# 集群名稱,取同一個
brokerClusterName = docker-mq-cluster

# 節(jié)點名稱,每個主節(jié)點取不一樣的,另一個主節(jié)點我們?nèi)roker-b,如果是主從節(jié)點名稱保持一致
brokerName = broker-a
#brokerName = broker-b

# 主從標識,0為主,其他大于0的為從,從只允許讀,主可以讀寫
brokerId = 1

#未消費的持久化消息清理時間點,默認凌晨4點
deleteWhen = 04

#持久化消息保存周期(單位:小時)
fileReservedTime = 48

#brocker角色,從
#- ASYNC_MASTER 異步復(fù)制Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole = SLAVE

#刷盤方式:異步刷盤
flushDiskType = ASYNC_FLUSH

#節(jié)點IP
brokerIP1 = 192.168.5.49
#brokerIP1 = 192.168.5.50

#broker的服務(wù)端口,和主節(jié)點區(qū)分開
listenPort=11911

#server服務(wù)器地址和端口,多個用分號隔開
namesrvAddr=192.168.5.49:9876;192.168.5.50:9876

#延遲消息等級時間
messageDelayLevel = 1s 5s 10s 30s

刪除rmqbroker原容器

#t停止容器
docker stop rmqbroker 

#刪除容器
docker rm rmqbroker 

重啟啟動rmqbroker

啟動主節(jié)點

docker run -d --name rmqbroker \
 -v /home/docker/rocketmq/data/broker/logs:/home/rocketmq/logs \
 -v /home/docker/rocketmq/data/broker/conf/broker.conf:/home/rocketmq/rocketmq-4.8.0/conf/broker.conf \
 --restart=always \
 -p 10909:10909 -p 10911:10911 -p 10912:10912 \
 apacherocketmq/rocketmq:4.8.0-alpine \
 sh mqbroker -c /home/rocketmq/rocketmq-4.8.0/conf/broker.conf

啟動從節(jié)點

注意我們的啟動命令,-p后面的端口是和主節(jié)點不一樣的,

從節(jié)點和主節(jié)點區(qū)分開,我們就直接用11909、11911、11912

docker run -d --name rmqbroker-s \
 -v /home/docker/rocketmq/data/broker-s/logs:/home/rocketmq/logs \
 -v /home/docker/rocketmq/data/broker/conf/broker-s.conf:/home/rocketmq/rocketmq-4.8.0/conf/broker.conf \
 --restart=always \
 -p 11909:11909 -p 11911:11911 -p 11912:11912 \
 apacherocketmq/rocketmq:4.8.0-alpine \
 sh mqbroker -c /home/rocketmq/rocketmq-4.8.0/conf/broker.conf

3、啟動可視化頁面rocketmq-console-ng

在一臺服務(wù)器安裝可視化頁面即可

docker run -d -p 8080:8080 --name rocketmq-console-ng \
-v /home/docker/rocketmq/tmp:/tmp \
--restart=always \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.5.49:9876;192.168.5.50:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
styletang/rocketmq-console-ng

結(jié)果驗證

查看服務(wù)端和客戶端日志無報錯,查看可視化界面

http://192.168.5.49:8080

成功檢測到兩個服務(wù)端,集群狀態(tài)也正常

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • docker 報錯 Exited (1) 4 minutes ago的原因分析

    docker 報錯 Exited (1) 4 minutes ago的原因分析

    這篇文章主要介紹了docker 報錯 Exited (1) 4 minutes ago的原因分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 使用Docker部署MongoDB?Cluster實踐

    使用Docker部署MongoDB?Cluster實踐

    本文詳細介紹了如何使用Docker和mongoDB官方鏡像搭建一個四節(jié)點的MongoDB分片集群,包括環(huán)境準備、配置文件設(shè)置、啟動節(jié)點、初始化Replica?Set和Shard,以及增加Shard節(jié)點和配置Sharding,最后,總結(jié)了整個搭建過程
    2026-03-03
  • docker如何配置mysql主從復(fù)制

    docker如何配置mysql主從復(fù)制

    文章介紹了如何在CentOS 7上搭建一個MySQL集群,包括創(chuàng)建Docker環(huán)境、配置文件設(shè)置、創(chuàng)建和啟動MySQL容器、設(shè)置遠程訪問以及配置主從同步
    2024-12-12
  • Docker部署SQL?Server及最佳應(yīng)用小結(jié)

    Docker部署SQL?Server及最佳應(yīng)用小結(jié)

    SQL?Server是由Microsoft開發(fā)和推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(DBMS),本文總結(jié)了容器環(huán)境下的部署及實踐應(yīng)用,需要的朋友可以參考下
    2022-08-08
  • 開啟Docker的TCP通信端口方式

    開啟Docker的TCP通信端口方式

    這篇文章主要介紹了開啟Docker的TCP通信端口方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • docker搭建rabbitmq實現(xiàn)步驟

    docker搭建rabbitmq實現(xiàn)步驟

    這篇文章主要為大家介紹了docker搭建rabbitmq實現(xiàn)步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Docker啟動PostgreSQL時創(chuàng)建多個數(shù)據(jù)庫的解決方案

    Docker啟動PostgreSQL時創(chuàng)建多個數(shù)據(jù)庫的解決方案

    這篇文章主要介紹了Docker啟動PostgreSQL時創(chuàng)建多個數(shù)據(jù)庫的解決方案,重點給大家介紹如何把shell/sql腳本放入/docker-entrypoint-initdb.d/目錄中,讓容器啟動的時候自動執(zhí)行創(chuàng)建
    2021-06-06
  • 在docker中配置Oracle11g的過程

    在docker中配置Oracle11g的過程

    這篇文章主要介紹了在docker中配置Oracle11g?,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • docker容器資源配額控制詳解

    docker容器資源配額控制詳解

    本篇文章主要介紹了docker容器資源配額控制詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • MongoDB docker集群配置小結(jié)

    MongoDB docker集群配置小結(jié)

    本文主要介紹了MongoDB docker集群配置小結(jié),主要包括如何配置MongoDB的三個節(jié)點,以及如何使用Docker Compose快速搭建集群,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09

最新評論

方城县| 清河县| 桃源县| 大姚县| 高陵县| 精河县| 昌都县| 古丈县| 久治县| 南城县| 宁化县| 西昌市| 财经| 枣庄市| 鸡泽县| 沂水县| 秦皇岛市| 巧家县| 西乌| 宁都县| 泽普县| 房山区| 巴东县| 化州市| 揭西县| 博爱县| 辉县市| 霍邱县| 乐陵市| 固阳县| 青海省| 府谷县| 桑植县| 徐水县| 万源市| 木兰县| 黄山市| 深水埗区| 山阳县| 乌拉特中旗| 闽侯县|