目录
1. 快速搭建RocketMQ服务
1.1 下载运行包
1.2 上传运行包到服务器且解压
1.3 修改脚本
1.4 启动服务
1.5 关闭服务
1.6 环境变量配置
2. 快速实现RocketMQ消息收发
3. 搭建RocketMQ可视化管理
3.1 下载Dashboard源码压缩包
3.2 编译 Dashboard源码
3.3 上传jar包到服务器
3.4 创建配置文件
3.5 启动管理控制台服务
3.6 查看管理界面
注意: RocketMQ服务基于Java开发,所以需要提前安装JDK。JDK建议采用1.8版本即可。
jdk安装可以参考:Linux环境下安装JDK-CSDN博客
RocketMQ的官网地址: http://rocketmq.apache.org 。
在下载页面可以获取RocketMQ的源码包以及运行包。
下载页面地址:https://rocketmq.apache.org/download。
当前最新的版本是5.x,这是一个着眼于云原生的新版本,给 RocketMQ 带来了非常多很亮眼的新特性。但是目前来看,企业中用得还比较少。因此,我们这里采用的还是更为稳定的4.9.5版本。运行只需要下载Binary运行版本就可以了。
unzip rocketmq-all-4.9.5-bin-release.zip
解压后的文件说明
注意:如果你的资源足够大,跳过次步骤。生产环境不建议调整,也跳过次步骤。
RocketMQ建议的运行环境需要至少12G的内存,这是生产环境比较理想的资源配置。但是,学习阶段,如果你的服务器没有这么大的内存空间,那么就需要做一下调整。进入bin目录,对其中的runserver.sh和runbroker.sh两个脚本进行一下修改。
修改runserver.sh
vim runserver.sh
修改为:
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
修改runbroker.sh
vim runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g" 修改为: JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g"
RocketMQ的后端服务分为nameserver和broker两个服务。所以我们需要启动这两个服务。
启动nameserver服务
cd /app/rocketmq/rocketmq-all-4.9.5-bin-release nohup bin/mqnamesrv &
使用jps查看服务是否启动成功
启动brocker
启动broker服务之前,要做一个小小的配置。进入RocketMQ安装目录下的conf目录,修改broker.conf文件,在文件最后面加入一个配置:
autoCreateTopicEnable=true
这个选项是为了便于进行后续实验。他的作用是允许 broker 端自动创建新的 Topic。
注意:如果你的服务器配置了多张网卡,比如阿里云,腾讯云这样的云服务器,他们通常有内网网卡和外网网卡两张网卡,那么需要增加配置brokerIP1属性,指向服务器的外网IP 地址,这样才能确保从其他服务器上访问到RocketMQ 服务。
现在,我们可以启动broker服务了
cd /app/rocketmq/rocketmq-all-4.9.5-bin-release nohup bin/mqbroker &
使用jps查看服务是否启动成功
这两个服务都启动成功了,截至现在,我们就搭建了一个rocketMQ的单机环境。
停止RocketMQ服务可以通过mqshutdown指令进行
mqshutdown namesrv # 关闭nameserver服务
mqshutdown broker # 关闭broker服务
在实际服务部署时,我们将将RocketMQ的部署地址添加到环境变量当中。例如使用vim ~/.bash_profile指令,添加以下内容。
export ROCKETMQ_HOME=/app/rocketmq/rocketmq-all-4.9.5-bin-releasePATH=$ROCKETMQ_HOME/bin:$PATHexport PATH
这样就不必每次进入RocketMQ的安装目录了。直接可以使用mqnamesrv 和mqbroker指令
RocketMQ后端服务启动完成后,就可以启动客户端的消息生产者和消息消费者进行消息转发了。接下来,我们会先通过RocketMQ提供的命令行工具快速体验一下RocketMQ消息收发的功能。
第一步:需要配置一个环境变量NAMESRV_ADDR,只想我们之前启动的nameserver服务。
通过vi ~/.bash_profile添加以下配置。然后使用source ~/.bash_profile让配置生效。
bash_profile追加的内容
export NAMESRV_ADDR='localhost:9876'
第二步:通过指令启动RocketMQ的消息生产者发送消息。
tools.sh org.apache.rocketmq.example.quickstart.Producer
第三步:可以启动消息消费者接收之前发送的消息
tools.sh org.apache.rocketmq.example.quickstart.Consumer
RocketMQ的社区就提供了一个图形化的管理控制台Dashboard,可以用可视化的方式直接观测并管理RocketMQ的运行过程。
Dashboard服务并不在RocketMQ的运行包中,需要到RocketMQ的官网下载页面单独下载。
下载Dashboard的源码压缩包。
将源码下载下来后,需要解压并进入对应的目录,使用maven进行编译。(需要提前安装maven客户端)
mvn clean package -Dmaven.test.skip=true
编译完成后,在源码的target目录下会生成可运行的jar包rocketmq-dashboard-1.0.1-SNAPSHOT.jar。接下来可以将这个jar包上传到服务器上。我们上传到/app/rocketmqDashboard/目录下
接下来我们需要在jar包所在的目录下创建一个application.yml配置文件, 主要是要指定nameserver的地址。配置文件内容如下:
rocketmq:
config:
namesrvAddrs:
- 192.168.31.5:9876
创建文件及追加内容
vim application.yml
注意:关于这个配置文件中更多的配置选项,可以参考一下dashboard源码当中的application.yml配置文件。
java -jar rocketmq-dashboard-1.0.0.jar
应用启动完成后,会在服务器上搭建起一个web服务,我们就可以通过访问http://192.168.31.5:8080查看到管理页面。
接下来我们通过命令发送一些消息,来看一下效果:
tools.sh org.apache.rocketmq.example.quickstart.Producer
管理界面查看消息