1. Введение
Apache RocketMQ — это промежуточное ПО для обмена сообщениями с распределенной моделью очереди с малой задержкой, высокой производительностью и высокой надежностью, емкостью триллиона уровней и гибкой масштабируемостью. Основной компонент состоит из четырех частей:Name Servers,Brokers,ProducerиConsumer; каждый из них можно масштабировать по горизонтали без единого вышедшего из строя узла.
- NameServer: Это почти не сохраняющий состояние узел, который можно развернуть в кластерах без какой-либо синхронизации информации между узлами.
- Broker: Развертывание относительно сложно. Брокеры делятся на Master и Slave. Один Master может соответствовать нескольким Slaver, но один Slaver может соответствовать только одному Master. Соответствующие отношения между Master и Slaver определяются указанием одного и того же BrokerName и разных BrokerId. , а BrokerId равен 0. Представляет Master, не-0 представляет Slaver. Мастер может развернуть несколько. Каждый брокер устанавливает долгосрочные соединения со всеми узлами в кластере NameServer и регулярно регистрирует информацию Topic на всех NameServer.
- Producer: Установите постоянное соединение с одним из узлов (случайно выбранных) в кластере NameServer, периодически получайте информацию о маршрутизации темы от NameServer, устанавливайте постоянное соединение с главным сервером, предоставляющим службы тем, и регулярно отправляйте контрольные сигналы главному устройству. Продукт полностью не имеет состояния и может быть развернут в кластерах.
- Consumer: Установите постоянное соединение с одним из узлов (выбранным случайным образом) в кластере NameServer, периодически получайте информацию о маршрутизации темы от NameServer, устанавливайте постоянные соединения с главным и подчиненным серверами, которые предоставляют службы тем, и регулярно отправляйте контрольные сигналы главному и подчиненному узлам. Потребители могут подписаться на сообщения от Мастера или от Ведомого.Правила подписки определяются конфигурацией Брокера.
2. Установка и развертывание MQ
2.1. Скачать
Непосредственно найдите последнюю версию, загрузите ее и разархивируйте.ракета в настоящее время.apache.org/release_not…
2.2. Изменить конфигурацию
Исправлятьconf/broker.conf
Добавьте следующую конфигурацию
BrokerIP1: Настройте IP-адрес сервера, на котором расположен брокер, чтобы DNS-сервер мог подключиться.
Исправлятьrunserver.sh
иrunbroker.sh
(нельзя изменить)Поскольку параметры запуска RocketMQ по умолчанию занимают много памяти, если в среде не так много памяти, ее необходимо изменить.JAVA_OPT
параметр
- runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
- runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
2.3. Запуск DNS-сервера
nohup sh bin/mqnamesrv &
Просмотрите журнал выполнения: tail -f ~/logs/rocketmqlogs/namesrv.log
2.4. Запуск брокера
nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf &
Укажите файл конфигурации с параметром -c Просмотрите текущий журнал: tail -f ~/logs/rocketmqlogs/broker.log
2.5 Как остановить службу
Если вам нужно остановить службу RocketMQ, не рекомендуется использовать kill непосредственно в рабочей среде, вы должны использовать следующую команду
sh bin/mqshutdown broker
sh bin/mqshutdown namesrv
3. Установите визуальный интерфейс управления
- скачатьGitHub.com/Apache/рок…
- компилировать
mvn clean package -Dmaven.test.skip=true
- бегать
nohup java -jar \
-Drocketmq.config.namesrvAddr=192.168.28.130:9876 \
-Drocketmq.config.isVIPChannel=false \
rocketmq-console-ng-1.0.0.jar &
В-четвертых, общая обработка исключений
4.1. MQClientException: No route info of this topic, TopicTest1
4.1.1 Описание исключения
на клиентеProducer
Причиной выдачи исключения «Нет информации о маршруте этой темы» при запуске и подготовке к отправке сообщения может быть:
-
Broker
Отключить автоматическое созданиеTopic
, и пользователь не создал тему вручную -
Broker
неправильно подключен кName Server
-
Producer
неправильно подключен кName Server
4.1.2 Решения
-
Устранение неполадок 1:
Broker
Отключить автоматическое созданиеTopic
, а пользователь не создается вручнуюTopic
- Вы можете выполнить «sh bin/mqbroker -m» в каталоге, где находится RocketMQ, чтобы просмотреть параметры конфигурации брокера.
- Следующее,
autoCreateTopicEnable=true
Докажи, что все в порядке
-
Устранение неполадок 2:
Broker
неправильно подключен кName Server
Просмотр журнала брокераtail -f ~/logs/rocketmqlogs/broker.log
Проверьте наличие сообщений об ошибках
-
Проверить 3:
Producer
неправильно подключен кName Server
- Проверить подключение программы
Name Server
Адрес неправильный? - Если на облачном сервере, проверьте конфигурацию группы безопасности
9876
Порт развит? - Проверьте, включен ли брандмауэр, если да, включите брандмауэр.
9876
портbash [root@zlt rocketmq-all-4.5.0-bin-release]# firewall-cmd --zone=public --list-ports 8090/tcp 80/tcp 8080/tcp [root@zlt rocketmq-all-4.5.0-bin-release]# firewall-cmd --zone=public --add-port=9876/tcp --permanent success [root@zlt rocketmq-all-4.5.0-bin-release]# firewall-cmd --reload success [root@zlt rocketmq-all-4.5.0-bin-release]# firewall-cmd --zone=public --list-ports 9876/tcp 8090/tcp 80/tcp 8080/tcp
- Проверить подключение программы
4.2. RemotingTooMuchRequestException: sendDefaultImpl call timeout
4.2.1 Описание исключения
- на клиенте
Producer
При запуске и готовности отправить сообщение возникает исключение следующим образом - обычно потому что
Name Server
не могу подключитьсяBroker
4.2.2 Решения
экзаменrocketmq-console
вкладка кластер,broker
Адрес правильный?
broker
Способ настройки адреса см.安装部署
Шаги, упомянутые в:
- Исправлять
broker.conf
конфигурация, добавитьbrokerIP1
параметр - запускать
broker
добавить когда-c
Конфигурационный файл, определяющий параметры
4.3. Невозможно получать/просматривать сообщения темы очереди недоставленных сообщений
4.3.1 Описание исключения
Очередь недоставленных сообщений по умолчаниюperm
Значение 2 не имеет разрешения на просмотр
4.3.2 Решения
поставить очередь в консолиperm
Просто измените его на 6
** Тема нажмитеTOPIC配置
**
Рекомендуемое чтение
- Трудно устранить проблемы с журналом? Трассировка ссылок распределенного журнала, чтобы помочь вам
- zuul интегрирует новейшие компоненты Sentinel для управления потоком данных
- План развертывания производства Nacos в регистрационном центре Али
- Пользовательские элементы конфигурации Spring Boot реализуют автоматические подсказки в среде IDE.
- Как сделать динамическую маршрутизацию Spring Cloud Zuul? Интеграция реализации Nacos проста
- Как разработчики Spring Cloud разрешают конфликты служб и скремблирование экземпляров?
- Как выполнять распределенные транзакции в сценариях синхронизации Spring Cloud? попробуй Сеата
Отсканируйте код, чтобы следовать за сюрпризом!