一、前言
1、本文主要内容
- RocketMQ安装的环境准备;
- 调整RocketMQ的JVM参数;
- 如何安装RocketMQ;
- 如何验证RocketMQ发送、消费消息;
- 如何关闭MQ服务;
- 关于集群搭建;
2、RocketMQ介绍
RocektMQ是阿里巴巴在2012年开源的一个纯java、分布式消息中间件。RocektMQ是一款低延迟、高可靠、可伸缩、易于使用的消息中间件。2016年阿里巴巴将RocketMQ捐赠给Apache,2017年9月RocketMQ正式从Apache社区正式毕业,成为Apache顶级项目。
3、本文环境信息
- 服务器
服务器 | 操作系统 | 硬件配置 | 版本 | 说明 |
---|---|---|---|---|
Linux | CentOS 7 | 4C16G | 64位 | 生产环境建议Linux/Unix |
- 软件
工具/环境 | 版本 | 说明 |
---|---|---|
JDK | 1.8+ | RocketMQ要求版本在1.8以上 |
Git | 1.8.3.1 | 源码方式安装需要,版本无要求 |
Maven | 3.6.3 | 源码方式安装需求,版本无要求 |
二、准备工作
1、准备安装文件
安装RocketMQ
,可以通过两种方式,通过GitHub
拉取源代码,进行编译,然后启动安装;另外一种方式是直接通过官方提供的 Binary
包进行安装。
代码方式
# 从GitHub上面拉取代码
$ git clone https://github.com/apache/rocketmq.git
$ cd rocketmq
# maven打包
$ mvn -Prelease-all -DskipTests clean install -U
# 这里的4.5.x是版本号,可能不同,请注意自己的版本
$ cd distribution/target/rocketmq-4.5.x/rocketmq-4.5.x
安装包方式
下载地址: http://rocketmq.apache.org/release_notes/release-notes-4.5.1/
,下载 Binary
文件即可。
# 下载软件,找到对应的版本,复制链接,下载即可
$ wget https://archive.apache.org/dist/rocketmq/4.5.1/rocketmq-all-4.5.1-bin-release.zip
# 解压,然后放到你想安装的位置
$ unzip rocketmq-all-4.5.1-bin-release.zip
# 进入目录
$ cd rocketmq-all-4.5.1-bin-release
以上,通过代码或者安装包,执行到最后一步之后,后续的操作都是一样。
2、开放防火墙对应端口号
如果你的服务器开通了防火墙,需要对端口号进行开放
#查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
$ firewall-cmd --state
# 开启一个指定端口号
# --permanent 永久生效,没有此参数重启后失效
$ firewall-cmd --zone=public --add-port=9876/tcp --permanent
#重载防火墙规则
firewall-cmd --reload
三、安装过程
1、修改JVM参数(非必须)
可以根据服务器配置情况,调整启动参数。修改位置就是启动文件。路径:
# 修改NameServer的JVM
$ vi ./bin/runserver.sh
# 修改Broker的JVM
$ vi ./bin/broker.sh
2、启动NameServer
# 启动NameServer
$ nohup sh bin/mqnamesrv &
# 查看日志,确认是否成功
$ tail -f ~/logs/rocketmqlogs/namesrv.log
2019-9-27 21:04:10 INFO NSScheduledThread1 - ----
...
#出现下面信息成功
The Name Server boot success...
注意:当无法启动的时候,可以使用sh命令,来看详细报错信息
sh bin/mqnamesrv
3、启动Broker
# 启动Broker
$ nohup sh bin/mqbroker -n localhost:9876 &
# 查看日志,确认是否成功
$ tail -f ~/logs/rocketmqlogs/broker.log
The broker[%s, 172.30.30.233:10911] boot success...
注意:当无法启动的时候,可以使用sh命令,来看详细报错信息
sh bin/mqbroker -n localhost:9876
四、验证发送和接收消息
1、生产者发送消息
$ export NAMESRV_ADDR=localhost:9876
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 出现下面信息成功发送
SendResult [sendStatus=SEND_OK, msgId= ...
2、消费者消费消息
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
# 出现下面信息成功消费
ConsumeMessageThread_%d Receive New Messages: [MessageExt...
五、关闭服务
按照如下命令执行即可
# 关闭 broker
$ sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK
# 关闭 namesrv
$ sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK
六、关于集群搭建
一般生产环境下,都会采用集群方式来搭建,关于RocketMQ的集群搭建方式,有如下几种:
- 单Master模式(不建议采用,多用于测试环境)
- 多Master模式
- 多Master多Slave模式-异步复制
- 多Master多Slave模式-同步双写
生产环境一般都有专门的运维小伙伴来负责,都是非常熟练的,这里不再详细展开了。
有兴趣的小伙伴可以参考:https://rocketmq-1.gitbook.io/rocketmq-connector/quick-start/qian-qi-zhun-bei/ji-qun-huan-jing
RocketMQ如何安装,相信按照如上所说的步骤,都没啥问题,那MQ里面的消息有没有图形界面工具可以查看呢?是有的,RocketMQ控制台,下篇文章见哦
欢迎关注「Hugh的白板」公号,私信我一起学习,一起成长!