Tutoriel d'installation de RocketMQ sous Linux

1. Descriptif environnemental

  1. Pour la version RocketMQ 4.3.0, l'environnement officiel requis est le suivant. Git est utilisé pour obtenir le code source de GitHub. Peu importe s'il n'est pas installé. Vous pouvez le télécharger directement.
  2. Le processus officiellement recommandé est le suivant : Installer les outils Git, Maven et Java JDK sur les systèmes Linux.
  3. L'outil Git est utilisé pour télécharger le code source du projet RocketMQ directement depuis GitHub vers le système Linux.
  4. Ensuite, Maven compile le code source de RocketMQ dans un fichier binaire
  5. Après avoir installé Java JDK, vous pouvez exécuter RocketMQ

2. Notes de version du JDK et de RocketMQ

Insérer la description de l'image ici

3.Installation du code source

1. Vous pouvez le télécharger depuis la bibliothèque de fichiers Apache https://archive.apache.org/dist/rocketmq/ Ici, nous choisissons la dernière version
Insérer la description de l'image ici
2. Utilisez la commande wget pour télécharger

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

3. Commande de décompression du projet

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

4. Modifier la configuration de démarrage de RocketMQ

Modifiez les trois fichiers de configuration dans le répertoire /usr/local/rocketmq/rocketmq-all-4.7.1-bin-release/bin : runserver.sh, runbroker.sh, tools.sh, sinon une mémoire insuffisante sera signalée

5.runserver.sh

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

6.runbroker.sh

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

7.outils.sh

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

8. Démarrez le serveur de noms

Entrez le répertoire /usr/local/rocketmq/rocketmq-all-4.7.1-bin-release sous le répertoire d'installation de RocketMQ pour fonctionner

nohup sh bin/mqnamesrv &

9. Démarrer le courtier

Entrez également le répertoire /usr/local/rocketmq/rocketmq-all-4.7.1-bin-release sous le répertoire d'installation de RocketMQ pour effectuer des opérations.

nohup sh bin/mqbroker -n 192.168.44.128:9876 &

4. Installation de RocketMQ_dual maître double esclave cluster_docker

1.Prémisse

1. Diagramme de relation d'installation
Insérer la description de l'image ici
2. Déploiement du service
Insérer la description de l'image ici
Insérer la description de l'image ici
3. Fonction de numéro de port

  1. Le port du canal VIP (10909) est généralement inutile
  2. Lorsque le port haute disponibilité HA est utilisé dans le cluster maître-esclave, créez une connexion socket entre le maître et l'esclave

4. Notes sur la configuration maître-esclave
3. Le nom du courtier doit être cohérent pour former une relation maître-esclave.
4. Le courtier Id est 0 et le rôle du courtier est ASYNC_MASTER ou SYNC_MASTER, qui représente le maître.
5. Le courtier n'est pas 0. et le brokerRole est SLAVE, qui représente l'esclave.

2.broker-master-un fichier de configuration

1. Ajoutez le répertoire de déploiement du cluster

mkdir -p /opt/rocketmq-docker/conf

2. Créez un fichier de configuration Broker-Master-A

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

3. Ajouter le contenu du fichier

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-un fichier de configuration

1. Créez un fichier de configuration courtier-esclave-a

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

2. Ajouter le contenu du fichier

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

Fichier de configuration 4.broker-master-b

1. Créez le fichier de configuration Broker-Master-B

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

2. Ajouter le contenu du fichier

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

Fichier de configuration 5.broker-slave-b

1. Créez le fichier de configuration courtier-esclave-b

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

2. Ajouter le contenu du fichier

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. Écrivez le fichier Docker-compose

1. Créez des données à accrocher dans le répertoire

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. Créez un fichier docker-compose

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

3. Ajouter le contenu du fichier

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. Démarrez le cluster Docker

1. Dans le répertoire où se trouve le fichier docker-compose, exécutez la commande pour démarrer

docker-compose up -d 

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44702984/article/details/131091119
conseillé
Classement