Сегодня я изучил RocketMQ с нуля. Я узнал о спецификациях JMS и ActiveMQ раньше, но я всегда чувствую, что RocketMQ приносит мне необъяснимую доброжелательность. Кроме того, компания в настоящее время использует RocketMQ, поэтому необходимо изучить волну, умножить на Молодые люди только что вышли на работу, узнают больше и исследуют технологии, я считаю, что конец всегда хороший.
Эта статья очень проста, это базовая конструкция среды Windows, некластерная версия. Пожалуйста, не спрашивайте меня, почему я не строю на Linux.Во-первых, я не привык использовать виртуальные машины.Во-вторых, срок действия студенческой машины Alibaba Cloud, которую я купил ранее, истек, что очень неудобно. После обучения созданию службы RocketMQ в Windows те же шаги и принципы используются для сборки в Linux. В конце этой статьи я также опубликую ошибки и решения, которые редактор допустил в процессе построения, чтобы каждый мог быстрее создавать сервисы.
1. Построение сервиса RocketMQ под окнами
Во-первых, предполагается, что у нас уже есть некоторое представление о соответствующей архитектуре RocketMQ, Если вы еще не узнали об этом, вы можете перейти на официальный сайт или найти блог, чтобы узнать. Процесс запуска RocketMQ в основном включает следующие шаги:
-
1. Запустите службу имен
NameServer
-
2,
Broker
Начало -
3. Создать
Provider
иConsumer
, имитировать отправку и получение сообщений -
4. Закрыть
RocketMQ
сервер
1. Запустите службу именNameServer
NameServer
Класс запуска по умолчанию:org.apache.rocketmq.namesrv.NamesrvStartup
2,Broker
Начало
Broker
Класс запуска по умолчанию:org.apache.rocketmq.broker.BrokerStartup
3. СоздатьProvider
иConsumer
, имитировать отправку и получение сообщений
Производственное сообщение:
Использование сообщений:
4. ЗакрытьRocketMQ
сервер
закрыть первымBroker
, а затем отключите серверы имен.
2. Связанные ошибки и решения
- 1. После загрузки RocketMQ необходимо настроить переменные среды
ROCKETMQ_HOME
, иначе будет сообщено об ошибке.
Так почему такая ошибка? очень просто, вы открываетеmqnamesrv.cmd
Файл будет знать, в нем есть такой кусок кода:
if not exist "%ROCKETMQ_HOME%\bin\runserver.cmd" echo Please set the ROCKETMQ_HOME variable in your environment! & EXIT /B 1
Если переменная окружения не существует, выполнитеecho
утверждение.
- 2. Путь для распаковки сжатого пакета не может содержать пробелы
То есть после загрузки сжатого пакета RocketMQ путь распаковки не может быть похож на следующий:
e://Program File/rocketmq
Если есть пробел, он сообщит об ошибке «Не удается найти основной класс».
3. Резюме
Построить среду RocketMQ проще, чем ожидалось, и в процессе есть два подводных камня.Вот идея решения проблемы запуска, то есть если вы действительно не можете понять, как решить проблему, то вы можете попробовать Открой это.cmd
файл, просмотреть исходный код и увидеть логику запуска, проблема будет намного яснее.
также указал вышеnamesrv
иbroker
связанные классы запуска, все процессы запуска находятся в исходном кодеmain()
В методе вы можете зайти и узнать~~