博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RocketMQ之双Master方式部署以及简单使用
阅读量:4580 次
发布时间:2019-06-09

本文共 6539 字,大约阅读时间需要 21 分钟。

1.1、服务器环境

192.168.100.24 root nameServer1,brokerServer1 Master1

192.168.100.25 root nameServer2,brokerServer2 Master2

1.2、Hosts添加信息

192.168.100.24 rocketmq-nameserver1

192.168.100.24 rocketmq-master1

192.168.100.25 rocketmq-nameserver2

192.168.100.25 rocketmq-master2

1.3、上传解压【两台机器】

# 上传alibaba-rocketmq-3.2.6.tar.gz文件至/usr/local

# tar -zxvf alibaba-rocketmq-3.2.6.tar.gz -C /usr/local

# mv alibaba-rocketmq alibaba-rocketmq-3.2.6

# ln -s alibaba-rocketmq-3.2.6 rocketmq

1.4、创建存储路径【两台机器】

# mkdir /usr/local/rocketmq/store

# mkdir /usr/local/rocketmq/store/commitlog

# mkdir /usr/local/rocketmq/store/consumequeue

# mkdir /usr/local/rocketmq/store/index

1.5、RocketMQ配置文件【两台机器】

# vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties 

# vim /usr/local/rocketmq/conf/2m-noslave/broker-b.properties

#所属集群名字  brokerClusterName=rocketmq-cluster  #broker名字,注意此处不同的配置文件填写的不一样  brokerName=broker-a|broker-b  #0 表示 Master,>0 表示 Slave  brokerId=0  #nameServer地址,分号分割  namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876  #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数  defaultTopicQueueNums=4  #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭  autoCreateTopicEnable=true  #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭  autoCreateSubscriptionGroup=true  #Broker 对外服务的监听端口  listenPort=10911  #删除文件时间点,默认凌晨 4点  deleteWhen=04  #文件保留时间,默认 48 小时  fileReservedTime=120  #commitLog每个文件的大小默认1G  mapedFileSizeCommitLog=1073741824  #ConsumeQueue每个文件默认存30W条,根据业务情况调整  mapedFileSizeConsumeQueue=300000  #destroyMapedFileIntervalForcibly=120000  #redeleteHangedFileInterval=120000  #检测物理文件磁盘空间  diskMaxUsedSpaceRatio=88  #存储路径  storePathRootDir=/usr/local/rocketmq/store  #commitLog 存储路径  storePathCommitLog=/usr/local/rocketmq/store/commitlog  #消费队列存储路径存储路径  storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue  #消息索引存储路径  storePathIndex=/usr/local/rocketmq/store/index  #checkpoint 文件存储路径  storeCheckpoint=/usr/local/rocketmq/store/checkpoint  #abort 文件存储路径  abortFile=/usr/local/rocketmq/store/abort  #限制的消息大小  maxMessageSize=65536  #flushCommitLogLeastPages=4  #flushConsumeQueueLeastPages=2  #flushCommitLogThoroughInterval=10000  #flushConsumeQueueThoroughInterval=60000  #Broker 的角色  #- ASYNC_MASTER 异步复制Master  #- SYNC_MASTER 同步双写Master  #- SLAVE  brokerRole=ASYNC_MASTER  #刷盘方式  #- ASYNC_FLUSH 异步刷盘  #- SYNC_FLUSH 同步刷盘  flushDiskType=ASYNC_FLUSH  #checkTransactionMessageEnable=false  #发消息线程池数量  #sendMessageThreadPoolNums=128  #拉消息线程池数量  #pullMessageThreadPoolNums=128

1.6、修改日志配置文件【两台机器】

# mkdir -p /usr/local/rocketmq/logs 

# cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g'*.xml

1.7、修改启动脚本参数【两台机器】

# vim /usr/local/rocketmq/bin/runbroker.sh

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"

# vim /usr/local/rocketmq/bin/runserver.sh

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"

1.8、启动NameServer【两台机器】

# cd /usr/local/rocketmq/bin

# nohup sh mqnamesrv &

对应的关闭命令是:sh mqshutdown namesrv

1.9、启动BrokerServer A【192.168.100.24】

# cd /usr/local/rocketmq/bin 

# nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &# netstat -ntlp

# jps

# tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log

# tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

1.10、启动BrokerServer B【192.168.100.25】

# cd /usr/local/rocketmq/bin

# nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &

# netstat -ntlp

# jps

# tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log

# tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

对应的关闭Broker的命令是:sh mqshutdown broker

1.11、部署RocketMQ Console(没有的可以联系我)

1.12、数据清理

# cd /usr/local/rocketmq/bin

# sh mqshutdown broker

# sh mqshutdown namesrv

# --等待停止# rm -rf /usr/local/rocketmq/store

# mkdir /usr/local/rocketmq/store

# mkdir /usr/local/rocketmq/store/commitlog

# mkdir /usr/local/rocketmq/store/consumequeue

# mkdir /usr/local/rocketmq/store/index

# --按照上面步骤重启NameServer与BrokerServer

二、简单示例:

所需jar包(Maven):

com.alibaba.rocketmq
rocketmq-client
3.2.6
com.alibaba.rocketmq
rocketmq-common
3.2.6
com.alibaba.rocketmq
rocketmq-remoting
3.2.6

Producer类:

public class producer {      public static void main(String[] args) throws MQClientException, RemotingException, InterruptedException, MQBrokerException {          DefaultMQProducer producer = new DefaultMQProducer("quickstart_producer");          producer.setNamesrvAddr("192.168.100.24:9876;192.168.100.25:9876");          producer.start();          for (int i = 0;i<100;i++){              Message msg = new Message("TopicQuickStart","TagA",                      ("Hello RocketMQ" + i).getBytes());              SendResult sendResult = producer.send(msg);              System.out.println(sendResult);            }      }  }

Consumer类:

public class Consumer {      public static void main(String[] args) throws MQClientException {          DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("quickstart_consumer");          consumer.setNamesrvAddr("192.168.100.24:9876;192.168.100.25:9876");          consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);            consumer.subscribe("TopicQuickStart","*");            consumer.registerMessageListener(new MessageListenerConcurrently() {              @Override              public ConsumeConcurrentlyStatus consumeMessage(List
list, ConsumeConcurrentlyContext context) { System.out.println(Thread.currentThread().getName() + "Receive New Messages:" + list); return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; } }); consumer.start(); System.out.println("Consumer Started"); } }

三、查看RocketMQ控制台结果:

四、对于2m-2s-async模式的broker启动命令:

# nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-a.properties >/dev/null 2>&1 &

# nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-b.properties >/dev/null 2>&1 &

# nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-a-s.properties >/dev/null 2>&1 &

# nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-2s-async/broker-b-s.properties >/dev/null 2>&1 &

转载于:https://www.cnblogs.com/WangHaiMing/p/7565181.html

你可能感兴趣的文章
[jAudio] JAVA上经典特征提取工具
查看>>
TestLead的总结
查看>>
git版本分支和分支、分支和主分支切换
查看>>
C++学习之模板(一) ----函数模板
查看>>
清除浮动的方式
查看>>
appium+python环境搭建
查看>>
MySQL
查看>>
关于数据库外连接和内连接和交叉连接
查看>>
git基本使用
查看>>
Leetcode 109 Convert Sorted List to Binary Search Tree
查看>>
1. 决策树(Decision Tree)-决策树原理
查看>>
179. Largest Number
查看>>
测量中角度处理常用函数
查看>>
基于django封装的常用装饰器和函数
查看>>
Kubernetes 的几个重要概念
查看>>
网络带宽监控常用命令
查看>>
事物增强器(上篇)
查看>>
热插拔
查看>>
Delphi中@,^,#,$分别表示什么?
查看>>
完全背包模板 51Nod 1101
查看>>