一、下载及安装RocketMQ
可以直接去wget下载,也可以从我的百度云直接拿tar包并解压。
wget下载压缩包:
wget http://mirror.bit.edu.cn/apache/rocketmq/4.8.0/rocketmq-all-4.8.0-bin-release.zip
解压缩:
unzip rocketmq-all-4.8.0-bin-release.zip
注意:如果unzip命令不能使用,则需要安装;yum install unzip
解压缩后文件夹名字过长,大家可以选择重命名:
mv rocketmq-all-4.8.0-bin-release rocketmq
二、配置RocketMQ
在rocketmq文件夹下创建logs,store文件夹。
在store下创建commitlog、consumequeue和index文件夹。
logs:主要用于存储RocketMQ日志目录;
store:主要用于存储RocketMQ数据文件目录;
commitlog:主要用于存储RocketMQ消息信息;
consumequeue、index:主要用于存储消息的索引数据;
一般来说系统的内存与RocketMQ默认的内存大小不太匹配,需要改小一点。在bin目录下,vi runserver.sh 命令进行编辑,
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
如图

并且,vi runbroker.sh 命令进行编辑,同样将内存改小一些。
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m "
xml文件路径修改:
切换到/conf目录下;
把该文件夹下所有xml文件里的{user.home}替换成 /root/rocketmq;
只需要使用下面命令即可,注意路径,我是安装到了root目录下,所以我的路径是 /root/rocketmq;
sed -i 's#${user.home}# /root/rocketmq#g' *.xml
修改broker.conf配置
cd 到conf目录
vi broker.conf
namesrvAddr={你自己的阿里云服务器外网IP或者内网IP}:9876
brokerIP1={你自己的阿里云服务器外网IP}
brokerName=james
brokerClusterName=DefaultCluster brokerId=0
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
三、启动nameServer和broker
这两个是RocketMQ的核心组件,消息是放到broker中的,而怎么知道放到哪一个broker中,生产者需要去请求nameServer。所以我们要启动这两个组件才可以使用RocketMQ。RocketMQ 原理
进入到刚才解压的bin目录
使用nohup sh mqnamesrv &命令后台启动nameServer
使用nohup sh mqbroker -n localhost:9876 &命令后台启动broker
我们可以通过Jps来查看是否启动成功,如果像下图一样,Broker和NameServer都启动,即代表启动成功

如果Jps提示不可用,下载deveal包即可。
yum install java-1.8.0-openjdk-devel.x86_64
如果发现未启动,则需要重启nameServer,再启动broker.
关闭nameServer和Broker的命令是
# 1.关闭NameServer
sh bin/mqshutdown namesrv
# 2.关闭Broker
sh bin/mqshutdown broker
测试生产者生产消息
在bin目录下,执行如下命令
export NAMESRV_ADDR=localhost:9876
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
12
可以看到,生产者把很多消息发送出去了。

发到哪了呢?发到了broker中,而且还未被消费。
测试消费者消费消息
为了对比,我们开启第二个连接窗口进行消息的消费
在bin目录下,执行如下命令
export NAMESRV_ADDR=localhost:9876
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

可以看到消费者消费了消息。
至此,已经Centos7环境RocketMQ已经搭建完毕。
四、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命令进行打包,注意:需要跳转到rocketmq-console的目录下面
因为这个可视化工具也是java写的

如果出现失败,多试几次,实在不行,
我把jar包放到了百度云, -
链接: https://pan.baidu.com/s/10ij7ap8Ix9H4MbtTleJh1Q
-
提取码: gfer
会新出现一个targer文件夹,进去运行jar包

运行jar包
nohup java -jar rocketmq-console-ng-2.0.0.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 disable firewalld.service
开启防火墙的命令是
systemctl start firewalld.service
- 访问成功

1523



被折叠的 条评论
为什么被折叠?



