Linux での RocketMQ インストール チュートリアル

1. 環境の説明

  1. RocketMQ 4.3.0 バージョンの正式な必要環境は以下の通りです Git を使用して GitHub からソースコードを取得します インストールしていなくても問題ありません 直接ダウンロードできます
  2. 公式に推奨されるプロセスは次のとおりです。 Linux システムに Git ツール、Maven、および Java JDK をインストールします。
  3. Git ツールは、RocketMQ プロジェクトのソース コードを GitHub から Linux システムに直接ダウンロードするために使用されます。
  4. 次に、Maven は RocketMQ ソース コードをバイナリ ファイルにコンパイルします。
  5. Java JDK をインストールした後、RocketMQ を実行できます。

2. JDK および RocketMQ のバージョンに関する注意事項

ここに画像の説明を挿入します

3. ソースコードのインストール

1. Apache ファイル ライブラリからダウンロードできます https://archive.apache.org/dist/rocketmq/ ここでは最新バージョンを選択します
ここに画像の説明を挿入します
2. wget コマンドを使用してダウンロードします

wget https://archive.apache.org/dist/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip

3. プロジェクト解凍コマンド

unzip rocketmq-all-4.7.1-bin-release.zip  -d  /usr/local/rocketmq

4. RocketMQ スタートアップ構成を変更する

ディレクトリ /usr/local/rocketmq/rocketmq-all-4.7.1-bin-release/bin にある 3 つの構成ファイル (runserver.sh、runbroker.sh、tools.sh) を変更します。変更しないと、メモリ不足が報告されます。

5.runserver.sh

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

6.ランブローカー.sh

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

7.ツール.sh

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m"

8.ネームサーバーを起動します

RocketMQ インストール ディレクトリの下にある /usr/local/rocketmq/rocketmq-all-4.7.1-bin-release ディレクトリに入り、操作します。

nohup sh bin/mqnamesrv &

9. ブローカーを開始する

また、RocketMQ インストール ディレクトリの下にある /usr/local/rocketmq/rocketmq-all-4.7.1-bin-release ディレクトリに入って操作を実行します。

nohup sh bin/mqbroker -n 192.168.44.128:9876 &

4. RocketMQ_デュアルマスターデュアルスレーブクラスター_dockerのインストール

1. 前提

1. インストール関係図
ここに画像の説明を挿入します
2. サービス展開
ここに画像の説明を挿入します
ここに画像の説明を挿入します
3. ポート番号機能

  1. vip チャネル ポート (10909) は通常は効果がありません。
  2. HA 高可用性ポートがマスター/スレーブ クラスターで使用される場合、マスターとスレーブの間にソケット接続を作成します。

4. マスター/スレーブ構成に関する注意事項
3. マスター/スレーブ関係を形成するには、brokerName が一貫している必要があります
4. BrokerId は 0 で、brokerRole はマスターを表す ASYNC_MASTER または SYNC_MASTER です
5. ブローカーは 0 ではありませんそして、brokerRole は SLAVE であり、スレーブを表します。

2.broker-master-a 設定ファイル

1. クラスター展開ディレクトリを追加します。

mkdir -p /opt/rocketmq-docker/conf

2. Broker-Master-A 設定ファイルを作成する

vi /opt/rocketmq-docker/conf/broker-master-a.conf

3. ファイルの内容を追加する

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
#namesrvAddr 地址 填写docker内网地址即可
namesrvAddr=172.18.0.3:9876;172.18.0.4:9876
#启用自动创建主题
autoCreateTopicEnable=true
#这个很有讲究 如果是正式环境 这里一定要填写内网地址(安全)
#如果是用于测试或者本地这里建议要填外网地址,因为你的本地代码是无法连接到阿里云内网,只能连接外网。
#当前broker监听的IP
brokerIP1 = 192.168.56.101
#存在broker主从时,在broker主节点上配置了brokerIP2的话,broker从节点会连接主节点配置的brokerIP2来同步。
brokerIP2 = 192.168.56.101
#Broker 对外服务的监听端口
listenPort = 10909
#Broker角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH

3.broker-slave-a 設定ファイル

1. Broker-Slave-A 構成ファイルを作成します

vi /opt/rocketmq-docker/conf/broker-slave-a.conf

2. ファイルの内容を追加する

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 1
deleteWhen = 04
fileReservedTime = 48
#namesrvAddr 地址 填写docker内网地址即可
namesrvAddr=172.18.0.3:9876;172.18.0.4:9876
#启用自动创建主题
autoCreateTopicEnable=true
#这个很有讲究 如果是正式环境 这里一定要填写内网地址(安全)
#如果是用于测试或者本地这里建议要填外网地址,因为你的本地代码是无法连接到阿里云内网,只能连接外网。
#当前broker监听的IP
brokerIP1 = 192.168.56.101
#存在broker主从时,在broker主节点上配置了brokerIP2的话,broker从节点会连接主节点配置的brokerIP2来同步。
brokerIP2 = 192.168.56.101
#Broker 对外服务的监听端口
listenPort = 10911
#Broker角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH

4.broker-master-b 設定ファイル

1. Broker-Master-B 設定ファイルを作成します

vi /opt/rocketmq-docker/conf/broker-master-b.conf

2. ファイルの内容を追加する

brokerClusterName = DefaultCluster
brokerName = broker-b
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
#namesrvAddr 地址 填写docker内网地址即可
namesrvAddr=172.18.0.3:9876;172.18.0.4:9876
#启用自动创建主题
autoCreateTopicEnable=true
#这个很有讲究 如果是正式环境 这里一定要填写内网地址(安全)
#如果是用于测试或者本地这里建议要填外网地址,因为你的本地代码是无法连接到阿里云内网,只能连接外网。
#当前broker监听的IP
brokerIP1 = 192.168.56.101
#存在broker主从时,在broker主节点上配置了brokerIP2的话,broker从节点会连接主节点配置的brokerIP2来同步。
brokerIP2 = 192.168.56.101
#Broker 对外服务的监听端口
listenPort = 10919
#Broker角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH

5.broker-slave-b 設定ファイル

1. Broker-slave-b 設定ファイルを作成します

vi /opt/rocketmq-docker/conf/broker-slave-b.conf

2. ファイルの内容を追加する

brokerClusterName = DefaultCluster
brokerName = broker-b
brokerId = 1
deleteWhen = 04
fileReservedTime = 48
#namesrvAddr 地址 填写docker内网地址即可
namesrvAddr=172.18.0.3:9876;172.18.0.4:9876
#启用自动创建主题
autoCreateTopicEnable=true
#这个很有讲究 如果是正式环境 这里一定要填写内网地址(安全)
#如果是用于测试或者本地这里建议要填外网地址,因为你的本地代码是无法连接到阿里云内网,只能连接外网。
#当前broker监听的IP
brokerIP1 = 192.168.56.101
#存在broker主从时,在broker主节点上配置了brokerIP2的话,broker从节点会连接主节点配置的brokerIP2来同步。
brokerIP2 = 192.168.56.101
#Broker 对外服务的监听端口
listenPort = 10921dock	
#Broker角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH

6. Docker-compose ファイルを作成する

1. ディレクトリにぶら下げるデータを作成する

mkdir -p  /opt/rocketmq-docker/data/nameserver-a/logs
mkdir -p  /opt/rocketmq-docker/data/nameserver-a/store
mkdir -p  /opt/rocketmq-docker/data/nameserver-b/logs
mkdir -p  /opt/rocketmq-docker/data/nameserver-b/store
mkdir -p  /opt/rocketmq-docker/data/broker-master-a/logs
mkdir -p  /opt/rocketmq-docker/data/broker-master-b/logs
mkdir -p  /opt/rocketmq-docker/data/broker-master-a/store
mkdir -p  /opt/rocketmq-docker/data/broker-master-b/store
mkdir -p  /opt/rocketmq-docker/data/broker-slave-a/logs
mkdir -p  /opt/rocketmq-docker/data/broker-slave-b/logs
mkdir -p  /opt/rocketmq-docker/data/broker-slave-a/store
mkdir -p  /opt/rocketmq-docker/data/broker-slave-b/store
mkdir -p  /opt/rocketmq-docker/data/broker-master-a
mkdir -p  /opt/rocketmq-docker/data/broker-master-b
mkdir -p  /opt/rocketmq-docker/data/broker-slave-a
mkdir -p  /opt/rocketmq-docker/data/broker-slave-b

2. docker-compose ファイルを作成する

vi /opt/rocketmq-docker/docker-compose.yml

3. ファイルの内容を追加する

version: '2'
services:
  nameserver-a:
    image: rocketmqinc/rocketmq
    container_name: nameserver-a
    networks:
      rocketmq_net:
        ipv4_address: 172.18.0.3
    environment:
      MAX_POSSIBLE_HEAP: 100000000
    ports:
      - 9876:9876
    volumes:
      - /opt/rocketmq-docker/data/nameserver-a/logs:/root/logs
      - /opt/rocketmq-docker/data/nameserver-a/store:/root/store
    command: sh mqnamesrv
  nameserver-b:
    image: rocketmqinc/rocketmq
    container_name: nameserver-b
    networks:
      rocketmq_net:
        ipv4_address: 172.18.0.4
    environment:
      MAX_POSSIBLE_HEAP: 100000000
    ports:
      - 9877:9876
    volumes:
      - /opt/rocketmq-docker/data/nameserver-b/logs:/root/logs
      - /opt/rocketmq-docker/data/nameserver-b/store:/root/store
    command: sh mqnamesrv
  broker-master-a:
    image: rocketmqinc/rocketmq
    container_name: broker-master-a
    networks:
      rocketmq_net:
        ipv4_address: 172.18.0.5
    environment:
      MAX_POSSIBLE_HEAP: 200000000
    ports:
      - 10909:10909
      - 10910:10910
    volumes:
      - /opt/rocketmq-docker/data/broker-master-a/logs:/root/logs
      - /opt/rocketmq-docker/data/broker-master-a/store:/root/store
      - /opt/rocketmq-docker/conf/broker-master-a.conf:/opt/rocketmq/conf/broker.conf
    command: sh mqbroker -c /opt/rocketmq/conf/broker.conf
    depends_on:
      - nameserver-a
      - nameserver-b
  broker-master-b:
    image: rocketmqinc/rocketmq
    container_name: broker-master-b
    networks:
      rocketmq_net:
        ipv4_address: 172.18.0.6
    environment:
      MAX_POSSIBLE_HEAP: 200000000
    ports:
      - 10919:10919
      - 10920:10920
    volumes:
      - /opt/rocketmq-docker/data/broker-master-b/logs:/root/logs
      - /opt/rocketmq-docker/data/broker-master-b/store:/root/store
      - /opt/rocketmq-docker/conf/broker-master-b.conf:/opt/rocketmq/conf/broker.conf
    command: sh mqbroker -c /opt/rocketmq/conf/broker.conf
    depends_on:
      - nameserver-a
      - nameserver-b
  broker-slave-a:
    image: rocketmqinc/rocketmq
    container_name: broker-slave-a
    networks:
      rocketmq_net:
        ipv4_address: 172.18.0.7
    environment:
      MAX_POSSIBLE_HEAP: 200000000
    ports:
      - 10911:10911
    volumes:
      - /opt/rocketmq-docker/data/broker-slave-a/logs:/root/logs
      - /opt/rocketmq-docker/data/broker-slave-a/store:/root/store
      - /opt/rocketmq-docker/conf/broker-slave-a.conf:/opt/rocketmq/conf/broker.conf
    command: sh mqbroker -c /opt/rocketmq/conf/broker.conf
    depends_on:
      - nameserver-a
      - nameserver-b
      - broker-master-a
      - broker-master-b
  broker-slave-b:
    image: rocketmqinc/rocketmq
    container_name: broker-slave-b
    networks:
      rocketmq_net:
        ipv4_address: 172.18.0.8
    environment:
      MAX_POSSIBLE_HEAP: 200000000
    ports:
      - 10921:10921
    volumes:
      - /opt/rocketmq-docker/data/broker-slave-b/logs:/root/logs
      - /opt/rocketmq-docker/data/broker-slave-b/store:/root/store
      - /opt/rocketmq-docker/conf/broker-slave-b.conf:/opt/rocketmq/conf/broker.conf
    command: sh mqbroker -c /opt/rocketmq/conf/broker.conf
    depends_on:
      - nameserver-a
      - nameserver-b
      - broker-master-a
      - broker-master-b
  console:
    image: styletang/rocketmq-console-ng
    container_name: rocketmq-console-ng
    networks:
      rocketmq_net:
        ipv4_address: 172.18.0.9
    ports:
      - 8080:8080
    depends_on:
      - nameserver-a
      - nameserver-b
    environment:
      - JAVA_OPTS= -Dlogging.level.root=info -Drocketmq.namesrv.addr=172.18.0.3:9876;172.18.0.4:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false
networks:
  rocketmq_net:
    ipam:
      config:
        - subnet: 172.18.0.0/16
          gateway: 172.18.0.1

7. Docker クラスターを開始します。

1. docker-compose ファイルが配置されているディレクトリで、コマンドを実行して起動します。

docker-compose up -d 

おすすめ

転載: blog.csdn.net/weixin_44702984/article/details/131091119