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
- Создайте файл broker.conf в каталоге {RmHome}/conf
- Напишите следующее в 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
разное
Справочная документация
-
Докер устанавливает службу RocketmqВ основном ссылайтесь на статью этого блоггера, которая хорошо написана, но есть несколько ям, встречающихся во время фактической установки, и версия оптимизируется на этой основе. Добавлена конфигурация Broker.conf и изменен зеркальный источник Rocketmq-console-ng. Исходный текст немного устарел, и некоторые функции не поддерживаются.
2.Решить проблему, что RocketMQ не может подключиться к брокеру
Приглашаю обратить внимание на мой паблик "Разбитые мысли КИВИ", там же можно собратьмой блог