Глава 1: Установка RocketMQ

RocketMQ
技术活,该赏
点赞再看,养成习惯

Серия учебных пособий по 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

Установить как бинарный пакет

Загрузите скачанный инсталляционный пакет на сервер

0

Разархивируйте установочный пакет

Сначала проверьте, установлен ли unzip

unzip

Появится следующий рисунок, он установлен

0

Появляется следующая картинка, он не установлен

0

установить команду

yum install unzip

0

Разархивируйте установочный пакет и перейдите в указанный каталог

Создайте соответствующий каталог /usr/local/server/rocketmq

 cd /usr/local/
mkdir server
cd server/
mkdir rocketmq

0

unzip rocketmq-all-4.5.1-bin-release.zip -d /usr/local/server/rocketmq

0

изменить имя файла

cd /usr/local/server/rocketmq/
mv rocketmq-all-4.5.1-bin-release/ rocketmq
cd ..
mv rocketmq/ mq #出现两个rocketmq文件夹名,改上一个文件夹为mq

0

0

Создать директорию хранения RocketMQ

Существующая структура каталогов выглядит так

0

Создать каталог хранения

mkdir logs
mkdir store
cd store
mkdir commitlog
mkdir consumequeue
mkdir index

0

Инструкции по созданию новой папки

  • 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

0

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

0

После завершения настройки перезагрузите сетевую карту

systemctl restart network

Перейдите в папку конфигурации conf

cd conf

0

в 2m-2s-асинхронный

cd 2m-2s-async

0

Изменить 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-файлах и убедитесь, что путь к журналу указан правильно.

0

0

грамматика:

sed -i пакетная замена

sed -i 's#原字符串#新字符串#g' 替换的文件
sed -i 's#${user.home}#/usr/local/server/mq/rocketmq#g' *.xml

0

Указывает, что замена прошла успешно

0

Изменить runbroker.sh

Отрегулируйте размер памяти (это только для демонстрационных целей, фактический размер памяти зависит от производственной среды)

cd ..
cd bin/
vim runbroker.sh

0

 

0

Отрегулируйте до 1 г

0

Изменить runserver.sh

Отрегулируйте размер памяти (это только для демонстрационных целей, фактический размер памяти зависит от производственной среды)

vim runserver.sh

0

0

Раздел 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 &

0

Служба не запустилась, проверьте журнал

cd /usr/local/server/mq/rocketmq/bin/
cat nobup.out

0

Причина в том, что введенная команда записывается как

nohup sh mqnamesrc &    ##应该是 nohup sh mqnamesrv &

войти

ohup sh mqnamesrv &

затем введите

Просмотр по jps

0

запустить брокера

 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/…

0

Закрыть nameserv и брокер

отключить службу namesrv

#进入bin
sh mqshutdown namesrv

0

Закрыть брокерскую службу

sh mqshutdown broker

0

Проверено jps

0

Раздел 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: управляет брокером, например: организация управления каждым почтовым отделением.
  • Тема: различать типы сообщений; отправитель может отправлять сообщения в одну или несколько тем; получатель сообщения может подписаться на одно или несколько сообщений в теме.
  • Очередь сообщений: эквивалент раздела темы; используется для параллельной отправки и получения сообщений.

0