RocketMQ(2)-Dockerクラスタ配置RocketMQ
=前言=
1、因为自己只买了一台阿里云服务器,所以RocketMQ集群都部署在单台服务器上只是端口不同,如果实际开发,可以分别部署在多台服务器上。
2、这里有关 Broker 和 NameServer 分别都做了了集群部署(各部署两个),且BroKer是按两主进行部署。
ドッカーを考慮する主に展開するために選ばれました。通过Docker部署RocketMQ集群更快速,而且对系统的资源利用更好!
Liunxはドッカーのブログを展開する方法に前に書かれた:[ドッカー](3)--- Linuxの展開ドッカー、ドッカー一般的に使用されるコマンド
:関連RocketMQのコンセプトは、ブログの導入作られた前の建築原理- RocketMQ(1)
まず、コンフィギュレーション・ファイルを実行し、最終的な業績を参照してください、必要な設定ファイルの下に書かれました!
まず、設定ファイルを書きます
1、必要なフォルダを作成します
mkdir -p /opt/rocketmq/logs/nameserver-a
mkdir -p /opt/rocketmq/logs/nameserver-b
mkdir -p /opt/rocketmq/store/nameserver-a
mkdir -p /opt/rocketmq/store/nameserver-b
mkdir -p /opt/rocketmq/logs/broker-a
mkdir -p /opt/rocketmq/logs/broker-b
mkdir -p /opt/rocketmq/store/broker-a
mkdir -p /opt/rocketmq/store/broker-b
mkdir -p /home/rocketmq/broker-a/
mkdir -p /home/rocketmq/broker-b/
2. broker.confを作成します。
broker.conf是Broker的配置文件
画像を持っているので、引っ張っRocketMQないので、デフォルトのbroker.confではありません。だから、ここでデフォルトのbroker.confコマンドを交換する時間が書かれて直接。
展開は、デュアルマスターモードであるので、2つbroker.confが存在しますので、この時間は、指定されたブローカー・a.confおよびブローカー・b.conf
1)ブローカーa.conf
brokerClusterName = rocketmq-cluster
brokerName = broker-a
brokerId = 0
# 这个ip配置为内网访问,让mq只能内网访问,不配置默认为内网
#brokerIP1 = xxxxx
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 内网的(阿里云有内网IP和外网IP)
namesrvAddr=172.18.0.5:9876;172.18.0.5:9877
autoCreateTopicEnable=true
#Broker 对外服务的监听端口,
listenPort = 11911
#Broker角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
ここで設定する主な情報は以下のとおりです。
1、外国人ブローカーの現在の露出のポート番号
アドレスネームサーバに登録された2は、2つのアドレスが、ネームサーバ、クラスタの展開を示し、そこにあるここを参照してください。
3、現在のブローカーの役割は、マスターがここに表現され、マスタにまたはからです。
2)ブローカーb.conf
brokerClusterName = rocketmq-cluster
brokerName = broker-b
brokerId = 0
# 这个ip配置为内网访问,让mq只能内网访问,不配置默认为内网
#brokerIP1 = xxxxx
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 内网的(阿里云有内网IP和外网IP)
namesrvAddr=172.18.0.5:9876;172.18.0.5:9877
autoCreateTopicEnable=true
#Broker 对外服务的监听端口,
listenPort = 11909
#Broker角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
上記の差はありませんが、外部電流Brockerポートが同じではない露出しました。
3、ドッキングウィンドウ-compose.ymlを書きます
私たちは、単にスクリプトは、複数のコンテナアプリケーションを実行するための情報を定義し、シェルのようなスクリプトとして理解ドッカ-compose.ymlを置くことができます。
version: '3.5'
services:
rmqnamesrv-a:
image: rocketmqinc/rocketmq:4.3.0
container_name: rmqnamesrv-a
ports:
- 9876:9876
volumes:
- /opt/rocketmq/logs/nameserver-a:/opt/logs
- /opt/rocketmq/store/nameserver-a:/opt/store
command: sh mqnamesrv
networks:
rmq:
aliases:
- rmqnamesrv-a
rmqnamesrv-b:
image: rocketmqinc/rocketmq:4.3.0
container_name: rmqnamesrv-b
ports:
- 9877:9877
volumes:
- /opt/rocketmq/logs/nameserver-b:/opt/logs
- /opt/rocketmq/store/nameserver-b:/opt/store
command: sh mqnamesrv
networks:
rmq:
aliases:
- rmqnamesrv-b
rmqbroker-a:
image: rocketmqinc/rocketmq:4.3.0
container_name: rmqbroker-a
ports:
- 11911:10911
volumes:
- /opt/rocketmq/logs/broker-a:/opt/logs
- /opt/rocketmq/store/broker-a:/opt/store
- /home/rocketmq/broker-a/broker-a.conf:/opt/rocketmq-4.3.0/conf/broker.conf
environment:
TZ: Asia/Shanghai
NAMESRV_ADDR: "rmqnamesrv-a:9876"
JAVA_OPTS: " -Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
command: sh mqbroker -c /opt/rocketmq-4.3.0/conf/broker.conf autoCreateTopicEnable=true &
links:
- rmqnamesrv-a:rmqnamesrv-a
- rmqnamesrv-b:rmqnamesrv-b
networks:
rmq:
aliases:
- rmqbroker-a
rmqbroker-b:
image: rocketmqinc/rocketmq:4.3.0
container_name: rmqbroker-b
ports:
- 11909:10909
volumes:
- /opt/rocketmq/logs/broker-b:/opt/logs
- /opt/rocketmq/store/broker-b:/opt/store
- /home/rocketmq/broker-b/broker-b.conf:/opt/rocketmq-4.3.0/conf/broker.conf
environment:
TZ: Asia/Shanghai
NAMESRV_ADDR: "rmqnamesrv-b:9876"
JAVA_OPTS: " -Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
command: sh mqbroker -c /opt/rocketmq-4.3.0/conf/broker.conf autoCreateTopicEnable=true &
links:
- rmqnamesrv-a:rmqnamesrv-a
- rmqnamesrv-b:rmqnamesrv-b
networks:
rmq:
aliases:
- rmqbroker-b
rmqconsole:
image: styletang/rocketmq-console-ng
container_name: rmqconsole
ports:
- 9001:8080
environment:
JAVA_OPTS: -Drocketmq.namesrv.addr=rmqnamesrv-a:9876;rmqnamesrv-b:9877 -Dcom.rocketmq.sendMessageWithVIPChannel=false
networks:
rmq:
aliases:
- rmqconsole
networks:
rmq:
name: rmq
driver: bridge
コンフィギュレーション・ファイルから、一般的にそれを見ることができます。
5つの画像記録のドッカー合計を引くことにより1、。rmqnamesrv-a
、rmqnamesrv-b
、rmqbroker-a
、rmqbroker-b
、rmqconsole
。
2は、rmqconsole是一个可视化的工具
RocketMQ関連情報ページを表示することができます。
3は、プロファイルbroker.confブローカがブローカ-A / b.confに置換されているためことがわかります。
第二に、デプロイメント環境
上記は、書かれたプロファイルのみですが、RocketMQを開始するには、多くの前提条件があります
1、必要な環境
1. 建议使用64位操作系统,Linux / Unix / Mac;
2. 64位JDK 1.8+;
3. Maven 3.2.x;
4. Git的;
5. 4g +免费磁盘用于Broker服务器
同時に、また、ドッキングウィンドウ-コンをインストールする必要がドッカ-compose.ymlを実行する必要があります
図2に示すように、取付ドッカー-COMPOSE
あなたはGitHubの公式についての紹介を見ることができます:https://github.com/docker/compose
インストールのドッキングウィンドウ、コン
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
インストールが成功したかどうかを確認するには
[root@izbp13196wp34obmnd4avdz ~]# docker-compose --version
docker-compose version 1.24.1, build 4667896b
3、重要なステップ
フロントすべての操作は、を通じて、このステップのための道を切り開いているdocker-compose执行docker-compose.yml
設定ファイル
docker-compose -f docker-compose.yml up -d
あなたがそれを見た場合、それはあなたが行われていることを意味します!
視覚的なインターフェースを見ます
パーフェクト!
注意
これは、アリが戻って開いて行く覚えておくことは、関連するポートを必要とします!
参照
3、ドッカー展開RocketMQクラスター(どうもありがとうございました)
只要自己变优秀了,其他的事情才会跟着好起来(中将9)