目录
1. 快速搭建RocketMQ服务
注意: RocketMQ服务基于Java开发,所以需要提前安装JDK。JDK建议采用1.8版本即可。
jdk安装可以参考:Linux环境下安装JDK-CSDN博客
1.1 下载运行包
RocketMQ的官网地址: http://rocketmq.apache.org 。
在下载页面可以获取RocketMQ的源码包以及运行包。
下载页面地址:https://rocketmq.apache.org/download。
当前最新的版本是5.x,这是一个着眼于云原生的新版本,给 RocketMQ 带来了非常多很亮眼的新特性。但是目前来看,企业中用得还比较少。因此,我们这里采用的还是更为稳定的4.9.5版本。运行只需要下载Binary运行版本就可以了。
1.2 上传运行包到服务器且解压
unzip rocketmq-all-4.9.5-bin-release.zip
解压后的文件说明
1.3 修改脚本
注意:如果你的资源足够大,跳过次步骤。生产环境不建议调整,也跳过次步骤。
RocketMQ建议的运行环境需要至少12G的内存,这是生产环境比较理想的资源配置。但是,学习阶段,如果你的服务器没有这么大的内存空间,那么就需要做一下调整。进入bin目录,对其中的runserver.sh和runbroker.sh两个脚本进行一下修改。
修改runserver.sh
vim runserver.sh
修改内容大致在文件的71行;
修改为:
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"
1.4 启动服务
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的单机环境。
1.5 关闭服务
停止RocketMQ服务可以通过mqshutdown指令进行
mqshutdown namesrv # 关闭nameserver服务
mqshutdown broker # 关闭broker服务
1.6 环境变量配置
在实际服务部署时,我们将将RocketMQ的部署地址添加到环境变量当中。例如使用vim ~/.bash_profile指令,添加以下内容。
export ROCKETMQ_HOME=/app/rocketmq/rocketmq-all-4.9.5-bin-releasePATH=$ROCKETMQ_HOME/bin:$PATHexport PATH
这样就不必每次进入RocketMQ的安装目录了。直接可以使用mqnamesrv 和mqbroker指令
2. 快速实现RocketMQ消息收发
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
这个指令会默认往RocketMQ中发送1000条消息。在命令行窗口可以看到发送消息的日志:
第三步:可以启动消息消费者接收之前发送的消息
tools.sh org.apache.rocketmq.example.quickstart.Consumer
消费者启动完成后,可以看到消费到的消息, 每一条这样的日志信息就表示消费者接收到了一条消息。
3. 搭建RocketMQ可视化管理
RocketMQ的社区就提供了一个图形化的管理控制台Dashboard,可以用可视化的方式直接观测并管理RocketMQ的运行过程。
3.1 下载Dashboard源码压缩包
Dashboard服务并不在RocketMQ的运行包中,需要到RocketMQ的官网下载页面单独下载。
下载Dashboard的源码压缩包。
3.2 编译 Dashboard源码
将源码下载下来后,需要解压并进入对应的目录,使用maven进行编译。(需要提前安装maven客户端)
mvn clean package -Dmaven.test.skip=true
3.3 上传jar包到服务器
编译完成后,在源码的target目录下会生成可运行的jar包rocketmq-dashboard-1.0.1-SNAPSHOT.jar。接下来可以将这个jar包上传到服务器上。我们上传到/app/rocketmqDashboard/目录下
3.4 创建配置文件
接下来我们需要在jar包所在的目录下创建一个application.yml配置文件, 主要是要指定nameserver的地址。配置文件内容如下:
rocketmq:
config:
namesrvAddrs:
- 192.168.31.5:9876
创建文件及追加内容
vim application.yml
![]()
注意:关于这个配置文件中更多的配置选项,可以参考一下dashboard源码当中的application.yml配置文件。
3.5 启动管理控制台服务
java -jar rocketmq-dashboard-1.0.0.jar
3.6 查看管理界面
应用启动完成后,会在服务器上搭建起一个web服务,我们就可以通过访问http://192.168.31.5:8080查看到管理页面。
接下来我们通过命令发送一些消息,来看一下效果:
tools.sh org.apache.rocketmq.example.quickstart.Producer
管理界面查看消息