rocketmq
优点
功能最全面 性能好
缺点
开源功能不如云版本(花钱的版本) 官网文档的版本更新跟不上程序的版本更新客户端只支持java
RocketMQ的官网地址: http://rocketmq.apache.org
github地址是 https://github.com/apache/rocketmq
RocketMQ运行版本下载地址: https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.9.0/rocketmq-all-4.9.0-bin-release.zip
RocketMQ源码版本下载地址: https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.9.0/rocketmq-all-4.9.0-source-release.zip
要运行rocketmq 必须要安装jdk 安装jdk8就行
然后配置环境变量
vim /etc/profile // 在这个文件中添加 百度上有一堆配置环境变量的
export JAVA_HOME=/app/jdk1.8/
export ROCKETMQ_HOME=/app/rocketmq/rocketmq-all-4.7.1-bin-release
PATH= R O C K E T M Q H O M E / b i n : ROCKETMQ_HOME/bin: ROCKETMQHOME/bin:JAVA_HOME/bin: P A T H : PATH: PATH:HOME/.local/bin:$HOME/bin
export PATH
source /etc/profile // 重新加载配置文件 执行了就不用重启电脑了 如果配置环境变量不成功就百度一个 百度的还不行 把系统卸载换个镜像重新装
ROCKETMQ_HOME必须要配不然rocketmq在启动的时候会报错
rocketmq启动
有两个部分
首先要启动NameServer 然后启动Borker
这俩个什么用后面再说
启动nameserver
使用bin目录下的mqnamesrv 执行这个脚本就可以启动了 默认内存4g 可以在 runserver.sh或者runserver.cmd中修改 就是设置jvm的内存大小在这里面就可以找到设置jvm参数的地方
启动之后可以在nohup.out这个文件中查看日志 这个文件就在bin目录下
broker启动
默认内存是8g 可以在runbroker.sh或者runbroker.cmd中修改
使用mqbroker命令就可以运行了
验证是否启动成功
在环境变量中需要配置一个
export NAMESRV_ADDR=‘localhost:9876’ // 这个它指定我们启动NameServer的那台机器
bin/tools.sh org.apache.rocketmq.example.quickstart.Producer 然后执行这个命令就可以给rocketmq发消息了
bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer 执行这个命令就可以消费消息
关闭rocket mq服务
sh bin/mqshutdown namesrv
sh bin/mqshutdown broker
搭建集群 linux中环境变量多个目录是用:分隔 不是: 如果写错了造成命令失效找不到命令 进入vim的目录中/usr/bin/vi 对配置文件进行修改 然后重启就会好了
首先配置
vi /etc/hosts // 这个文件
192.168.232.128 worker1 // 写要做集群机器的ip跟名字 worker1给起的名字
192.168.232.129 worker2
192.168.232.130 worker3
vim /etc/hostname // 这个文件可以修改名字
worker1.localdomain // 这样既可重启就能看到名字被修改了
关闭防火墙
systemctl stop firewalld.service
三台机器分别安装java、rocketMq 配置相应的环境变量
修改配置文件
rocketmq在conf目录下给我创建了四个版本的集群模式 这里就写dledger 这个集群可以自动选举 别的不能
进入dledger这个目录下可以看到三个配置文件 里面什么都不用改 就改改dLegerPeers这个参数把做集群机器的ip跟端口写上 然后启动 还是先启动 首先要启动NameServer 然后启动Borker nameserver启动跟上面一样mqnamesrv使用这个命令就行 borker需要在启动的时候使用-c给它一个配置文件
第一台机器./mqbroker -c …/conf/dledger/broker-n0.conf 第二台机器./mqbroker -c …/conf/dledger/broker-n1.conf 第三台机器./mqbroker -c …/conf/dledger/broker-n2.conf
nohup ./mqbroker -c …/conf/dledger/broker-n0.conf & // 前面加nohup 后面加&可以让它后台启动不占用控制台
查看状态
使用jps指令 可以看到一个NameSrvStartup进程和两个BrokerStartup进程。
使用mqadmin管理工具
clusterList clusterList -n
第三方 图形界面化查看状态
https://github.com/apache/rocketmq-externals // 下载下来使用maven编译rocket-console这个模块 然后把这个模块的jar包复制出来在jar’所在的目录下创建application.properties文件 rocketmq.config.namesrvAddr=worker1:9876;worker2:9876;worker3:9876 里面写rocketmq机器的地址
然后java -jar rocketmq-console-ng-1.0.1.jar 启动 默认端口应该是8080 在浏览器输入对应的ip跟端口就可以看到rocketmq图形界面了