【Centos】Centos 7.6 安装 RocketMQ 5.1
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] 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,这家伙装起来还是比较麻烦的,这还是一个单节点,唉,还是云上的好啊,直接买,哈哈哈哈。