技术活,该赏
点赞再看,养成习惯
Серия учебных пособий по RocketMQ
Раздел 1: Загрузите RocketMQ
Демонстрация: Версия RocketMQ: 4.5.1
ссылка на скачивание
https : //archive.apache.org/dist/rocketmq/4.5.1/rocketmq-all-4.5.1-bin-release.zip
Требования к окружающей среде
- Linux64-битная система
- JDK1.8 (64-разрядная версия)
- Для установки исходного кода требуется установить Maven 3.2.x.
Раздел 2: Установка RocketMQ
Установить как бинарный пакет
Загрузите скачанный инсталляционный пакет на сервер
Разархивируйте установочный пакет
Сначала проверьте, установлен ли unzip
unzip
Появится следующий рисунок, он установлен
Появляется следующая картинка, он не установлен
установить команду
yum install unzip
Разархивируйте установочный пакет и перейдите в указанный каталог
Создайте соответствующий каталог /usr/local/server/rocketmq
cd /usr/local/
mkdir server
cd server/
mkdir rocketmq
unzip rocketmq-all-4.5.1-bin-release.zip -d /usr/local/server/rocketmq
изменить имя файла
cd /usr/local/server/rocketmq/
mv rocketmq-all-4.5.1-bin-release/ rocketmq
cd ..
mv rocketmq/ mq #出现两个rocketmq文件夹名,改上一个文件夹为mq
Создать директорию хранения RocketMQ
Существующая структура каталогов выглядит так
Создать каталог хранения
mkdir logs
mkdir store
cd store
mkdir commitlog
mkdir consumequeue
mkdir index
Инструкции по созданию новой папки
- logs: каталог журнала хранения
- store: каталог для хранения файлов данных
- commitlog: хранить информацию о сообщениях
- Consumerqueue, index: сохранить индексные данные сообщения.
Введение в каталог RocketMQ
- bin: сценарии запуска, включая сценарии оболочки и сценарии CMD.
- conf: файлы конфигурации экземпляра, включая файлы конфигурации брокера, файлы конфигурации журнала и т. д.
- lib: зависит от пакетов jar, включая Netty, commons-lang, FastJSON и т. д.
описание файла каталога conf
- 2m-2s-async: 2 ведущих 2 подчиненных — асинхронный
- 2 м-2 с-синхронизация: 2 ведущих 2 ведомых-синхронизации
- 2m-noslave: 2 мастера без рабов
Здесь демонстрируется конфигурация с одним узлом: просто сначала измените реализацию конфигурации 2m-2s-async.
cd 2m-2s-async
broker-a.properties :单结点a配置文件
broker-a-s.properties :单结点a的从结点配置文件
broker-b.properties :单结点b配置文件
broker-b-s.properties :单结点b的从结点配置文件
Раздел 3: Конфигурация с одним узлом
настроить хосты
vim /etc/hosts
Добавить сервер имен и брокер
# nameserver
192.168.88.131 rocketmq-nameserver1
# broker
192.168.88.131 rocketmq-master1
После завершения настройки перезагрузите сетевую карту
systemctl restart network
Перейдите в папку конфигурации conf
cd conf
в 2m-2s-асинхронный
cd 2m-2s-async
Изменить Broker-a.properties
vim broker-a.properties
Перезапишите Broker-a.properties следующей конфигурацией, сохраните
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
brokerIP1=192.168.88.131
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/server/mq/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/usr/local/server/mq/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/server/mq/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/server/mq/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/server/mq/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/server/mq/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
Примечание. Путь в конфигурации должен соответствовать только что созданному пути к папке, если есть какие-либо пользовательские изменения.
Изменить путь журнала
Войдите в каталог conf, замените ${user.home} во всех XML-файлах и убедитесь, что путь к журналу указан правильно.
грамматика:
sed -i пакетная замена
sed -i 's#原字符串#新字符串#g' 替换的文件
sed -i 's#${user.home}#/usr/local/server/mq/rocketmq#g' *.xml
Указывает, что замена прошла успешно
Изменить runbroker.sh
Отрегулируйте размер памяти (это только для демонстрационных целей, фактический размер памяти зависит от производственной среды)
cd ..
cd bin/
vim runbroker.sh
Отрегулируйте до 1 г
Изменить runserver.sh
Отрегулируйте размер памяти (это только для демонстрационных целей, фактический размер памяти зависит от производственной среды)
vim runserver.sh
Раздел 4: Конфигурация переменных среды
vim /etc/profile
Добавьте следующую команду в конец файла профиля
#set rocketmq
ROCKETMQ_HOME=/usr/local/server/mq/rocketmq/
PATH=$PATH:$ROCKETMQ_HOME/bin
export ROCKETMQ_HOME PATH
Введите :wq!, чтобы сохранить и выйти, и конфигурация сразу же вступит в силу:
source /etc/profile
Сначала запустите nameserv
nohup sh mqnamesrv &
Служба не запустилась, проверьте журнал
cd /usr/local/server/mq/rocketmq/bin/
cat nobup.out
Причина в том, что введенная команда записывается как
nohup sh mqnamesrc & ##应该是 nohup sh mqnamesrv &
войти
ohup sh mqnamesrv &
затем введите
Просмотр по jps
запустить брокера
nohup sh mqbroker -c /usr/local/server/mq/rocketmq/conf/2m-2s-async/broker-a.properties > /dev/null 2>&1 &
Примечание:
Подробное объяснение оболочки >/dev/null 2>&1 под Linux
блог woo woo woo.cn на.com/ultra NM is/afraid/…
Закрыть nameserv и брокер
отключить службу namesrv
#进入bin
sh mqshutdown namesrv
Закрыть брокерскую службу
sh mqshutdown broker
Проверено jps
Раздел 5: Конфигурация брандмауэра
Хосту необходимо получить удаленный доступ к службе RocketMQ и веб-службе виртуальной машины, а также необходимо открыть соответствующий номер порта.Простой и грубый способ — напрямую закрыть брандмауэр.
# 关闭防火墙
systemctl stop firewalld.service
# 查看防火墙的状态
firewall-cmd --state
# 禁止firewall开机启动
systemctl disable firewalld.service
Или в целях безопасности открывайте только определенные номера портов, RocketMQ по умолчанию использует 3 порта: 9876, 10911, 11011. Если брандмауэр не закрыт, то брандмауэр должен открыть эти порты:
- сервер имен использует порт 9876 по умолчанию
- master по умолчанию использует порт 10911
- подчиненный использует порт 11011 по умолчанию
Выполните следующую команду:
# 开放name server默认端口
firewall-cmd --remove-port=9876/tcp --permanent
# 开放master默认端口
firewall-cmd --remove-port=10911/tcp --permanent
# 开放slave默认端口 (当前集群模式可不开启)
firewall-cmd --remove-port=11011/tcp --permanent
# 重启防火墙
firewall-cmd --reload
Раздел 6: Введение в архитектуру RocketMQ
- Производитель: отправитель сообщения; пример: отправитель
- Потребитель: получатель сообщения; пример: получатель
- Брокер: подготовка и передача сообщений; пример: почтовое отделение
- NameServer: управляет брокером, например: организация управления каждым почтовым отделением.
- Тема: различать типы сообщений; отправитель может отправлять сообщения в одну или несколько тем; получатель сообщения может подписаться на одно или несколько сообщений в теме.
- Очередь сообщений: эквивалент раздела темы; используется для параллельной отправки и получения сообщений.