Установите RocketMQ с помощью Docker Установите RocketMQ с помощью Docker

Использование Docker для установки RocketMQ может быть более удобным для развертывания и управления.Следующие основные шаги:

RocketMQЭто промежуточное программное обеспечение распределенных сообщений, NameServerсостоящее из двух ролей и брокера, и представляет собой типичное решение для обмена сообщениями, основанное на режиме публикации/подписки.

  • NameServerЭто служба именования RocketMQ, которую можно понимать как службу, аналогичную DNS, которая в основном отвечает за запись информации о маршрутизации Topic и адресной информации Broker. В каждом кластере RocketMQ должен быть как минимум один сервер имен, а несколько серверов имен не имеют состояния и равны, поэтому высокая доступность может быть достигнута за счет расширения емкости. Когда клиенту-производителю или потребителю необходимо отправить или получить сообщения, ему необходимо сначала запросить у сервера имен информацию о брокере соответствующей темы, а затем установить соединение с брокером.
  • BrokerЭто агент хранения и передачи сообщений RocketMQ, который отвечает за хранение и пересылку сообщений. Каждый брокер отвечает за управление несколькими очередями сообщений темы, поддерживает репликацию ведущий-ведомый и архитектуру с несколькими ведущими, а также контролирует время хранения и метод хранения сообщений на брокере через уровень хранилища. Брокеры также могут сотрудничать для повышения эффективности обработки сообщений и отказоустойчивости кластера.

NameServerBrokerОбщайтесь с через механизм обнаружения пульса, чтобы убедиться, что NameServer может своевременно обновлять информацию о состоянии брокера, а брокер также может получать последнюю информацию о маршрутизации темы. В RocketMQ укажите адрес NameServer, настроив параметрnamesrvAddr брокера.

Таким образом, NameServer и Broker неотделимы друг от друга и взаимодействуют друг с другом, благодаря их сотрудничеству для реализации передачи и обработки сообщений RocketMQ.

1. Извлеките образ RocketMQ:

docker pull rocketmqinc/rocketmq

2. Запустите экземпляр RocketMQ:

在运行实例之前,需要创建一个存储目录,用于保存RocketMQ 的数据和日志。例如:

mkdir /opt/rocketmq/data
mkdir /opt/rocketmq/logs

然后,使用以下命令来启动RocketMQ 实例:

docker run -d --name rmqnamesrv -p 9876:9876 -v /opt/rocketmq/data:/root/rocketmq/data -v /opt/rocketmq/logs:/root/rocketmq/logs rocketmqinc/rocketmq sh mqnamesrv

Это запустит сервер имен в фоновом режиме и сопоставит его с портом хоста 9876. Смонтируйте каталоги /opt/rocketmq/dataand в каталоги and /opt/rocketmq/logsв контейнере , чтобы хост мог получить доступ к данным и журналам RocketMQ./root/rocketmq/data/root/rocketmq/logs

Затем запустите экземпляр Broker с помощью следующей команды:

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

10911Это запустит экземпляр брокера в фоновом режиме и сопоставит его с портом хоста 10909. Смонтируйте каталог /opt/rocketmq/dataand в каталог and /opt/rocketmq/logsв контейнере , чтобы контейнер мог получить доступ к данным и журналам RocketMQ, и настройте параметр, чтобы указать адрес ./root/rocketmq/data/root/rocketmq/logsBrokerNAMESRV_ADDRNameServer

Примечание. В приведенной выше команде мы использовали параметр –link, чтобы связать контейнер сервера имен с контейнером Broker. Также задайте адрес сервера имен в качестве NAMESRV_ADDпеременной среды R и задайте для нее значение namesrv:9876, чтобы контейнер Broker мог правильно получить доступ к серверу имен.

3. Протестируйте RocketMQ:

Протестируйте через консоль RocketMQ или командную строку, чтобы убедиться, что RocketMQ работает нормально. Например, вы можете использовать инструмент mqadmin для простого теста следующим образом:

docker run --rm rocketmqinc/rocketmq:4.9.1 sh mqadmin clusterList -n 127.0.0.1:9876

Выше приведены основные шаги для Docker по установке RocketMQ, и вам нужно обратиться к официальной документации за конкретными подробностями .

Guess you like

Origin blog.csdn.net/qq_40739917/article/details/130888095