RocketMQ 的Git地址:https://github.com/apache/rocketmq
在Apache RocketMQ官网下载源码,或者使用上面提供的github地址下载源码,并使用Apache RocketMQ官网提供的方式打包
mvn -Prelease-all -DskipTests clean install -U
构建结果
在源码文件distribution/target/apache-rocketmq的目录下,可以查看到打好的tar包
本文要实现的是双Master模式的RocketMQ集群。两台Linux虚拟机分别为192.168.0.220、192.168.0.221。
192.168.0.220 NameServer Broker
192.168.0.221 NameServer Broker
修改220、221上的hosts
vi /etc/hosts
service network restart 重启网络服务
确保两台机器相互之间是可以ping通的
将apache-rocketmq.tar.gz上传到220、221两台机器上。在/usr/local下,新建rocketmq目录,并将tar包解压到该目录下。
tar -zxvf apache-rocketmq.tar.gz -C /usr/local/rocketmq/
创建存储路径
cd /usr/local/rocketmq
mkdir store
mkdir ./store/commitlog
mkdir ./store/consumequeue
mkdir ./store/index
修改220、221上的RocketMQ日志配置文件
mkdir /usr/local/rocketmq/logs
cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml
RocketMQ配置文件
修改220节点上的配置文件
下图中的配置与上面/usr/local/rocketmq/store下新建的存储路径对应
ASYNC_FLUSH相对于SYNC_FLUSH来说,执行速度更快,但是在宕机的情况下,可能会出现少量的消息丢失。后者安全性更高,在宕机情况下不会出现消息丢失。
修改221节点上的配置文件,同样也是修改broker-a.properties
分别修改220、221节点上的broker-b.properties,其内容与自己所在节点上的broker-a.properties基本相同,唯一需要修改的是brokerName=broker-b
集群JVM调优
vim /usr/local/rocketmq/bin/runbroker.sh 设置Broker的JVM参数
根据虚拟Linux的实际情况,设置为:
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"
vim /usr/local/rocketmq/bin/runserver.sh 设置NameServer的JVM参数
根据虚拟Linux的实际情况,设置为:
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
先启动NameServer,再启动Broker
在linux中nohup指令的用法
nohup program & 使进程在用户退出登录后仍旧继续执行,原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用,实现了完整的守护进程功能。
在220、221机器上执行指令,启动NameServer
cd /usr/local/rocketmq/bin
nohup sh mqnamesrv &
查看nameserver的日志信息,确认220、221中NameServer启动成功。
cd /usr/local/rocketmq/logs/rocketmqlogs
vi namesrv.log
启动220上的BrokerServer A
cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties autoCreateTopicEnable=true >/dev/null 2>&1 &
启动221机器上的BrokerServerB
cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties autoCreateTopicEnable=true >/dev/null 2>&1 &
查看220上的Broker启动日志信息
cd /usr/local/rocketmq/logs/rocketmqlogs
vi broker.log
查看221上的Broker启动日志信息
使用jps指令查看当前系统的Java进程
RocketMQ管控台
在github上开源的RocketMQ扩展项目地址
https://github.com/apache/rocketmq-externals
进入rocketmq-console,点击README.md查看rocketmq-console注意事项
提示信息
下载该项目并导入到Eclipse,其中rocketmq-console即控制台项目。修改application.properties中的namesrvAddr
rocketmq.config.namesrvAddr=192.168.0.220:9876;192.168.0.221:9876
在命令行中进入到磁盘中rocketmq-console对应目录,执行mvn clean package -Dmaven.test.skip=true
查看生成的jar包
启动并查看rocketmq-console
在Windows的命令行中,执行如下指令
java -jar rocketmq-console-ng-1.0.0.jar
访问地址 http://127.0.0.1:8080
集群
消息