Rocketmq Centos7.9 安装
1.Centos7.9 安装
在Centos7.9 安装 Rocketmq-4.9.5,下载地址:https://rocketmq.apache.org/download/
版本 | 文档 | 发布日期 | Source 下载 | Binary 下载 | End of Support |
---|---|---|---|---|---|
4.9.5 | Release Notes | 2023.4.1 | download.zip | download.zip |
RocketMQ 集群工作流程:
1、启动 NameServer,NameServer 起来后监听端口,等待 Broker、Producer 、Consumer 连上来,相当于一个路由控制中心。
2、Broker 启动,跟所有的 NameServer 保持长连接,定时发送心跳包。心跳包中包含当前 Broker信息( IP+端口等 )以及存储所有 Topic 信息。注册成功后,NameServer 集群中就有 Topic 跟 Broker 的映射关系。
3、收发消息前,先创建 Topic,创建 Topic 时需要指定该 Topic 要存储在哪些 Broker 上,也可以在发送消息时自动创建 Topic。
4、Producer 发送消息,启动时先跟 NameServer 集群中的其中一台建立长连接,并从 NameServer 中获取当前发送的 Topic 存在哪些 Broker 上,轮询从队列列表中选择一个队列,然后与队列所在的 Broker 建立长连接从而向 Broker 发消息。
5、Consumer 跟 Producer 类似,跟其中一台 NameServer 建立长连接,获取当前订阅 Topic 存在哪些 Broker 上,然后直接跟 Broker 建立连接通道,开始消费消息。
RocketMQ 的传输模型是:发布订阅模型 ,不同订阅组之间相互独立不会相互影响,同一个主题内的消息可以被多个订阅组处理,每个订阅组都可以拿到全量消息,因此发布订阅模型可以实现一对多通信。
RocketMQ 支持两种消息模式:集群消费( Clustering )和广播消费( Broadcasting )。
集群消费:同一 Topic 下的一条消息只会被同一消费组中的一个消费者消费。也就是说,消息被负载均衡到了同一个消费组的多个消费者实例上。
广播消费:当使用广播消费模式时,每条消息推送给集群内所有的消费者,保证消息至少被每个消费者消费一次。
1.1 jdk和rocketmq解压
jdk下载:https://www.oracle.com/cn/java/technologies/javase/javase8u211-later-archive-downloads.html
mkdir -p /usr/local/java && mkdir -p /usr/local/rocketmq
cd /soft
tar zxvf jdk-8u351-linux-x64.tar.gz -C /usr/local/java
unzip rocketmq-all-4.9.5-bin-release.zip -d /usr/local/rocketmq
1.2 配置环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_351
export JRE_HOME=/usr/local/java/jdk1.8.0_351/jre
export ROCKETMQ_HOME=/usr/local/rocketmq/rocketmq-all-4.9.5-bin-release
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ROCKETMQ_HOME/bin:$PATH:$HOME/bin
source /etc/profile
1.3 修改NameServer启动
修改 /usr/local/rocketmq/rocketmq-all-4.9.5-bin-release/bin/runserver.sh
⽂件,RocketMQ默认设置的JVM内存为4G,如果安装环境内存不够,需要调整。
修改前
修改后
# 启动NameServer
[root@bogon /]# cd /usr/local/rocketmq/rocketmq-all-4.9.5-bin-release/bin
[root@bogon bin]# nohup ./mqnamesrv &
[1] 8716
[root@bogon bin]# nohup: 忽略输入并把输出追加到"nohup.out"
# 关闭NameServer
[root@bogon bin]# ./mqshutdown namesrv
# 查看启动日志
[root@bogon bin]# cat nohup.out
Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON
1.4 修改broker启动
修改 /usr/local/rocketmq/rocketmq-all-4.9.5-bin-release/bin/runbroker.sh
⽂件,RocketMQ默认设置的JVM内存为8G,如果安装环境内存不够,需要调整。
修改前
修改后
修改 /usr/local/rocketmq/rocketmq-all-4.9.5-bin-release/conf/broker.conf
⽂件,加⼊如下配置开启⾃动创建Topic功能。
autoCreateTopicEnable=true
# 启动broker
[root@bogon /]# cd /usr/local/rocketmq/rocketmq-all-4.9.5-bin-release/bin
[root@bogon bin]# nohup ./mqbroker -n 10.10.60.172:9876 &
[2] 8863
[root@bogon bin]# nohup: 忽略输入并把输出追加到"nohup.out"
# 关闭broker
[root@bogon bin]# ./mqshutdown broker
# 查看启动日志
[root@bogon bin]# cat nohup.out
Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON
The broker[bogon, 10.10.60.172:10911] boot success. serializeType=JSON and name server is 10.10.60.172:9876
1.5 安装可视化控制台
版本 | 文档 | 发布日期 | Source 下载 | Binary 下载 | End of Support |
---|---|---|---|---|---|
1.0.0 | Release Notes | 2021.9.23 | download.zip |
rocketmq-dashboard 是一个springboot项目,在application.properties文件中配置NameServer地址。
启动访问:http://localhost:8080/