[Rocketmq] Быстро создайте окружение RocketMQ через докер

Docker

rocket

1. Установите Namesrv

вытащить изображение

docker pull rocketmqinc/rocketmq:4.4.0

запустить контейнер

docker run -d -p 9876:9876 -v {RmHome}/data/namesrv/logs:/root/logs -v {RmHome}/data/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq:4.4.0 sh mqnamesrv

Меры предосторожности

  {RmHome}Чтобы заменить его местом, где ваш хост хочет сохранять журналы и данные MQ, используйте функцию громкости через параметр -v докера, чтобы сопоставить ваш локальный каталог с каталогом в контейнере. В противном случае все данные сохраняются в памяти среды выполнения контейнера по умолчанию, и после перезапуска она вернется к исходной начальной точке.

2. Установите сервер брокера

вытащить изображение

Это то же изображение, что и предыдущий шаг. Если предыдущий шаг завершен, этот шаг не нужно тянуть.

Создайте файл broker.conf

  1. Создайте файл broker.conf в каталоге {RmHome}/conf
  2. Напишите следующее в broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = {本地外网 IP}

BrokerIP1 необходимо изменить на IP вашего собственного хоста

запустить контейнер

docker run -d -p 10911:10911 -p 10909:10909 -v  {RmHome}/data/broker/logs:/root/logs -v  {RmHome}/rocketmq/data/broker/store:/root/store -v  {RmHome}/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq:4.4.0 sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

Меры предосторожности

Уведомление:{RmHome}То же, что и в предыдущем шаге, без суффикса. BrokerIP1 в файле broker.conf — это IP-адрес вашего брокера, зарегистрированного в Namesrv. Если он не указан, по умолчанию будет использоваться IP-адрес интрасети в контейнере. Если ваше приложение также не развернуто в контейнере, подключенном к сети, служба брокера не может быть подключена локально или вне контейнера, что приводит к различным исключениям, таким как RemotingTooMuchRequestException.

3. Установите консоль RocketMQ

вытащить изображение

docker pull pangliang/rocketmq-console-ng

запустить контейнер

docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr={本地外网 IP}:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t pangliang/rocketmq-console-ng

разное

Справочная документация

  1. Докер устанавливает службу RocketmqВ основном ссылайтесь на статью этого блоггера, которая хорошо написана, но есть несколько ям, встречающихся во время фактической установки, и версия оптимизируется на этой основе. Добавлена ​​конфигурация Broker.conf и изменен зеркальный источник Rocketmq-console-ng. Исходный текст немного устарел, и некоторые функции не поддерживаются.
    2.Решить проблему, что RocketMQ не может подключиться к брокеру

Приглашаю обратить внимание на мой паблик "Разбитые мысли КИВИ", там же можно собратьмой блог