参考
https://www.jianshu.com/p/0de7857deb27
一、下载及安装RocketMQ
可以直接去官网下载,也可以从我的百度云直接拿tar包。
链接: https://pan.baidu.com/s/1nEEM-k4YWJAMbjjoEeysiw 提取码: n5f2
然后通过类似于Xftp这样的文件上传工具,将包上传到Centos7系统的某个目录下
使用tar -xzvf rocketmq-4.6.1.tar.gz
命令解压即可。
二、启动nameServer和broker
这两个是RocketMQ的核心组件,消息是放到broker中的,而怎么知道放到哪一个broker中,生产者需要去请求nameServer。所以我们要启动这两个组件才可以使用RocketMQ。RocketMQ 原理
进入到刚才解压的bin目录
使用nohup sh mqnamesrv &
命令启动nameServer
使用nohup sh mqbroker -n localhost:9876 &
命令启动broker
我们可以通过jps
来查看是否启动成功,如果像下图一样,Broker和NameServer都启动,即代表启动成功
如果上面的BrokerStartup没有启动成功,代表系统的内存不太够,需要改小一点。
在bin目录下,vi runServer.sh
命令进行编辑,
并且,vi runbroker.sh
命令进行编辑,同样将内存改小一些。
配置完成后,重启启动broker,如果仍旧启动不了,则需要重启nameServer,再启动broker.
关闭nameServer的命令是: sh mqshutdown namesrv
测试生产者生产消息
在bin目录下,执行如下命令
export NAMESRV_ADDR=localhost:9876
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
可以看到,生产者把很多消息发送出去了。
发到哪了呢?发到了broker中,而且还未被消费。
测试消费者消费消息
为了对比,我们开启第二个连接窗口进行消息的消费
在bin目录下,执行如下命令
export NAMESRV_ADDR=localhost:9876
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
可以看到消费者消费了消息。
RocketMQ可视化工具
如果你使用过RabbitMQ,你一定看到过安装成功时,输入网址即可打开一个可视化的界面。
RocketMQ社区也提供这样的一个工具,只不过我们需要自己安装一下。
下载这个工具我们需要git,因为这个工具是在github上开源的,我们使用git clone
会方便很多,需要注意的是,我们克隆github项目比较慢,不过国内码云也放了这个项目,所以我们也可以直接从码云上直接克隆。
-
安装git: 使用
yum install git
安装git即可。 -
安装maven:使用
yum install maven
安装maven即可。 -
克隆项目: 进入到你想安装的目录,使用
git clone https://gitee.com/mirrors/RocketMQ-Externals.git
命令克隆即可,例如我选择的是rocketmq-4.6.1的同级目录。
由于使用的是码云,速度很快
-
进入资源路径,修改配置
cd RocketMQ-Externals/rocketmq-console/src/main/resources
vi application.properties
配置nameServer的地址
- 使用
mvn clean package -D maven.test.skip = true
命令进行打包,因为这个可视化工具也是java写的
如果出现失败,多试几次,实在不行,
我把jar包放到了百度云, - 链接: https://pan.baidu.com/s/10ij7ap8Ix9H4MbtTleJh1Q
- 提取码: gfer
会新出现一个targer文件夹,进去运行jar包
运行jar包
java -jar rocketmq-console-ng-1.0.1.jar --server.port=8888 --rocketmq.config.namesrvAddr=127.0.0.1:9876
这里我指定端口为8888,可以看到项目启动
启动后,会出现两种情况
- 本地访问ip + 端口 拒绝访问,解决方法就是关闭防火墙
Centos 查看防火墙状态的命令是
systemctl status firewalld.service
Centos关闭防火墙的命令是
systemctl stop firewalld.service
开启防火墙的命令是
systemctl start firewalld.service
- 访问成功