码迷,mamicode.com
首页 > 其他好文 > 详细

Rocketmq分布式消息队列的部署与监控

时间:2017-06-07 18:48:14      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:索引   效果   配置   queue   分布   .json   alibaba   拒绝   strong   

--------------------------------------------------------------------------------------------

一、Rocketmq简介:

--------------------------------------------------------------------------------------------

RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点:
1、支持严格的消息顺序;
2、支持Topic与Queue两种模式;
3、亿级消息堆积能力;
4、比较友好的分布式特性;
5、同时支持Push与Pull方式消费消息;

 

(本文采用双Master架构模式。

 

--------------------------------------------------------------------------------------------

二、服务器分布:

--------------------------------------------------------------------------------------------

1、2台服务器信息(我用的虚拟机)

IP地址 主机名 机型 角色 架构模式
 192.168.100.193  rocketmq-master1 20G nameserver、brokerserver  Master1(双Master模式) 
  192.168.100.194  rocketmq-master2 20G  nameserver、brokerserver  Master2(双Master模式)

 

 

 

 2、hosts信息添加

 

vi /etc/hosts

增加以下:

192.168.100.193 rocketmq-master1
192.168.100.194 rocketmq-master2

192.168.100.193 mqnameserver1
192.168.100.194 mqnameserver2

 

3、系统环境

CentOS 6.3

技术分享

 

4、总体架构

技术分享

 

 

--------------------------------------------------------------------------------------------

三、Rocketmq安装与配置

--------------------------------------------------------------------------------------------

 1、JDK安装:

tar包解压,然后在/etc/profile中加入如下的环境变量:

技术分享

生效:source /etc/profile

具体可以参考我的另一篇博客:http://www.cnblogs.com/gmq-sh/p/4328843.html

 

2、RocketMq安装

下载rocketmq的release版:

https://github.com/alibaba/RocketMQ/releases

文件我放到了/data目录下。

执行一下命令:

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
ll /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

技术分享

)

 

3、环境变量设置

在 /etc/profile 文件中追加一下配置:

vi /etc/profile

 

## /usr/local/bin
export PATH=$PATH:/usr/local/bin

## java env
export JAVA_HOME=/usr/java/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOMEb/dt.jar:$JAVA_HOMEb/tools.jar

## rocketmq
export ROCKETMQ_HOME=/usr/local/rocketmq
export PATH=$PATH::$ROCKETMQ_HOME/bin

 

生效:

source /etc/profile

 

进入rocketmq的bin目录:

cd /usr/local/rocketmq/bin

centos系统优化:慎用,我虚拟机总是卡死,还不明白为啥

执行 os.sh的系统优化,原始的sh文件需要修改,不然会导致出问题:

-- sh os.sh -- 未找到错误原因,先不要执行这个命令

 

(详情参考本人另一篇博文:http://www.cnblogs.com/gmq-sh/p/6957741.html)

目前这个命令已经根据刚才的博文改好了,貌似还是一直在执行,不知道要执行多久,有大神可以指导下?

 

4、主机名设置

(1)、Master1服务器

vi /etc/hosts

如下:

192.168.100.193 rocketmq-master1
192.168.100.194 rocketmq-master2

192.168.100.193 mqnameserver1
192.168.100.194 mqnameserver2

 

网络:

vi /etc/sysconfig/network

技术分享

修改成如下:

 

sed -i  /HOSTNAME/d /etc/sysconfig/network
echo HOSTNAME=rocketmq-master1  >> /etc/sysconfig/network
hostname rocketmq-master1

效果如下:

 

技术分享

 

 (2)、Master2服务器

vi /etc/hosts
192.168.100.193 rocketmq-master1
192.168.100.194 rocketmq-master2

192.168.100.193 mqnameserver1
192.168.100.194 mqnameserver2

sed -i  /HOSTNAME/d /etc/sysconfig/network
echo HOSTNAME=rocketmq-master2  >> /etc/sysconfig/network
hostname rocketmq-master2

 

5、RocketMQ配置

 (1)、Master1服务器

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

内容如下:

---------------------start-----------------------------------------------------

#启动MessageFilterServer进程
#filterServerNums=1

#Broker所属集群

brokerClusterName=AdpMqCluster
brokerName=broker-a

#0:Master >0:Slave
brokerId=0
namesrvAddr=mqnameserver1:9876;mqnameserver2:9876
defaultTopicQueueNums=4

#线下开启,线上关闭
autoCreateTopicEnable=FALSE

#自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=FALSE

#是否拒绝事务消息接入
rejectTransactionMessage=FALSE

#是否从web服务器获取NameServer地址,针对大规模的Broker集群建议使用这种方式

fetchNamesrvAddrByAddressServer=FALSE


listenPort=10911

#删除文件时间点,默认凌晨4点
deleteWhen=04

#文件保留时间,默认48小时
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=50000000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88

#日志根路径

storePathRootDir=/data/rocketmq/store

#commitLog存储路径
storePathCommitLog=/data/rocketmq/store/commitlog

maxMessageSize=65536

flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000

#Broker 的角色
#ASYNC_MASTER 主从异步复制
#SYNC_MASTER 主从同步双写
#SLAVE Slave

brokerRole=ASYNC_MASTER

#刷盘方式
#ASYNC_FLUSH:异步刷盘
#SYNC_FLUSH:同步刷盘

flushDiskType=ASYNC_FLUSH

checkTransactionMessageEnable=false

sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128

#是否开启消息索引功能
messageIndexEnable=TRUE

#是否提供安全的消息索引机制,索引保证不丢
messageIndexSafe=FALSE

#磁盘满、且无过期文件情况下 TRUE 表示强制删除文件,优先保证服务可用; FALSE 标记服务不可用,文件不删除
cleanFileForciblyEnable=TRUE

#Topic持久化文件
topicConfigPath=/data/logs/rocketmq/store/config/topics.json

#ConsumerOffset持久化文件
consumerOffsetPath=/data/logs/rocketmq/store/config/consumerOffset.json

#subscriptionGroup 持久化文件
subscriptionGroupPath=/data/logs/rocketmq/store/config/subscriptionGroup.json

 

---------------------end-----------------------------------------------------

 

Rocketmq分布式消息队列的部署与监控

标签:索引   效果   配置   queue   分布   .json   alibaba   拒绝   strong   

原文地址:http://www.cnblogs.com/gmq-sh/p/6958312.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!