【Centos】Centos 7.6 安装 RocketMQ 5.1

发布时间 2023-12-13 08:03:44作者: 酷酷-

1  前言

前面我们安装了 JDK 以及 Maven 哈,我们继续安装 RocketMQ。

2  安装步骤

2.1  下载压缩包

https://rocketmq.apache.org/docs/

2.2  解压并编译

unzip rocketmq-all-5.1.4-bin-release.zip

下边这些不需要看哈,这是我走的弯路= =,还没整好...,仅记录哈

$ unzip rocketmq-all-5.1.4-source-release.zip
$ cd rocketmq-all-5.1.4-source-release/
$ mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install -U
$ cd distribution/target/rocketmq-5.1.4/rocketmq-5.1.4

mvn 的时间比较长哈,进过漫长的等待:

记住这个,mvn编译报堆溢出的设置这个,再重新执行:

set MAVEN_OPTS= -Xms512m -Xmx1024m

2.3  启动 RocketMQ

进入解压后的目录,启动RocketMQ,在bin目录,里面有我们需要的启动脚本。我们需要启动两个服务:namesrv和broker。

# 启动 namesrv
/usr/rocketmq/rocketmq-all-5.1.4-bin-release/bin/mqnamesrv &

# 启动 broker 注意修改为自己的目录
/usr/rocketmq/rocketmq-all-5.1.4-bin-release/bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true &

注意:在上述broker启动命令中,"localhost:9876"是namesrv的地址。

2.4  调整配置

注意一下内存问题,由于JVM试图分配的内存超过了可用内存。RocketMQ的NameServer和Broker都运行在Java环境中,所以它们的运行需要一定量的内存。

如果你的系统没有足够的内存来运行这些服务,你可能需要增加你的系统内存,或者尝试减少JVM使用的内存。你可以通过修改runbroker.sh和runserver.sh脚本中的-Xms和-Xmx参数来调整JVM的初始堆内存和最大堆内存。

默认情况下,这两个参数可能被设置为相当大的值(例如,1GB或更多),这可能超过了你的系统可用内存。你可以尝试将这两个参数设置为更小的值,例如256MB,看看是否可以解决你的问题。

以下是如何修改这两个参数的示例:

# 在runbroker.sh中
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

# 在runserver.sh中
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

runserver的修改:

runbroker的修改:

2.5  图形界面安装

https://github.com/apache/rocketmq-dashboard

拉取代码,慢的话可以去码云上拉哦,

修改配置 application.yml:

# 开启登录功能
rocketmq.config.loginRequired=true

# Dashboard文件目录,登录用户配置文件所在目录
rocketmq.config.dataPath=/tmp/rocketmq-console/data

详细文档:https://github.com/apache/rocketmq-dashboard/blob/master/docs/1_0_0/UserGuide_CN.md

确保${rocketmq.config.dataPath}定义的目录存在,并且该目录下创建登录配置文件"users.properties", 如果该目录下不存在此文件,则默认使用resources/users.properties文件。 users.properties文件格式为:

# 该文件支持热修改,即添加和修改用户时,不需要重新启动console
# 格式, 每行定义一个用户, username=password[,N]  #N是可选项,可以为0 (普通用户); 1 (管理员)  

#定义管理员 
admin=admin,1

#定义普通用户
user1=user1
user2=user2

修改完配置,编译:

mvn clean package -Dmaven.test.skip=true

我发现在服务器上打包报错,本机打包的并且注释了两个插件:

启动控制台:

java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar &

2.6  开机自启动

2.6.1  namesrv

sudo vi /etc/systemd/system/rocket-namesrv.service
[Unit]
Description=rocket-namesrv Service
After=network.target

[Service]
Type=forking
ExecStart=/usr/rocketmq/rocketmq-all-5.1.4-bin-release/bin/mqnamesrv &
User=root
PrivateTmp=true
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

2.6.2  broker

sudo vi /etc/systemd/system/rocket-broker.service
[Unit]
Description=rocket-broker Service
After=network.target

[Service]
Type=forking
ExecStart=/usr/rocketmq/rocketmq-all-5.1.4-bin-release/bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true &
User=root
PrivateTmp=true
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

2.6.3  dashboard

sudo vi /etc/systemd/system/rocket-dashboard.service
[Unit]
Description=rocket-dashboard Service
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/java -jar /usr/rocketmq/rocketmq-dashboard-master/rocketmq-dashboard-1.0.1-SNAPSHOT.jar
User=root
PrivateTmp=true
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
# 启动 
sudo systemctl start rocket-namesrv
sudo systemctl start rocket-broker
sudo systemctl start rocket-dashboard
# 开启开机自启
sudo systemctl enable rocket-namesrv
sudo systemctl enable rocket-broker
sudo systemctl enable rocket-dashboard
# 查看是否自启动
sudo systemctl is-enabled rocket-namesrv
sudo systemctl is-enabled rocket-broker
sudo systemctl is-enabled rocket-dashboard

2.7  MQ 测试

2.7.1  发送消息

通过使用 bin/tools.sh工具类,实现测试发送消息。命令行操作如下:

# 设置 Namesrv 服务器的地址
export NAMESRV_ADDR=127.0.0.1:9876

# 执行生产者 Producer 发送测试消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

如果发送成功,我们会看到大量成功的发送日志。

2.7.2  消费消息

通过使用bin/tools.sh工具类,实现测试消费消息。命令行操作如下:

# 设置 Namesrv 服务器的地址
export NAMESRV_ADDR=127.0.0.1:9876

# 执行消费者 Consumer 消费测试消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

貌似没什么毛病。

 

3  小结

ok,这家伙装起来还是比较麻烦的,这还是一个单节点,唉,还是云上的好啊,直接买,哈哈哈哈。