RocketMQ集群部署方式总结

  

1 RocketMQ网络部署图

  

RocketMQ网络部署图如下图所示:
 RocketMQ集群部署方式总结

  
1.1 RocketMQ网络部署特点:
  
      <李>命名服务器是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。   <李>代理部署相对复杂,代理分为主人与奴隶,一个主可以对应多个奴隶,但是一个奴隶只能对应一个主人,主人与奴隶的对应关系通过指定相同的BrokerName,不同的BrokerId来定义,BrokerId为0表示,非0表示Slave.Master也可以部署多个。每个代理与命名服务器集群中的所有节点建立长连接,定时注册主题信息到所有命名服务器。   <李>生产商与命名服务器集群中的其中一个节点(随机选择)建立长连接,定期从名称服务器取主题路由信息,并向提供主题服务的主建立长连接,且定时向主人发送心跳.Producer完全无状态,可集群部署。   <李>消费者与命名服务器集群中的其中一个节点(随机选择)建立长连接,定期从名称服务器取主题路由信息,并向提供主题服务的主人,奴隶建立长连接,且定时向主人,奴隶发送心跳.Consumer既可以从主订阅消息,也可以从奴隶订阅消息,订阅规则由代理配置决定。   
  

2命名服务器集群

  

命名服务器集群如下:

           命名服务器集群   IP地址               NameServer-1   192.168.1.101         NameServer-2   是192.168.1.102            

分别启动

  
 <代码类=" language-bash "> nohup sh mqnamesrv,
  tail - f - n 500美元ROCKETMQ_HOME/日志/rocketmqlogs/namesrv.log  
  

3 RocketMQ配置文件

  

众所周知,RocketMQ有多种集群部署方式,它们的配置文件也是分开的,如下:

  
 <代码类=" language-bash "> (root@rocketmq01 conf) # ls -rlt/usr/local/rocketmq/conf
  总32
  -rw-r - r - 949 2017年9月19日broker.conf根的根
  drwxr-xr-x根60 2017年9月19日2 m-noslave 2根
  drwxr-xr-x 2根118根2017年9月19日2 m-2s-sync
  drwxr-xr-x 2根118根2017年9月19日2 m-2s-async
  -rw-r - r - 1根根3720年4月21日07:56 logback_namesrv.xml
  -rw-r - r - 1根根3718年4月21日07:56 logback_filtersrv.xml
  -rw-r - r - 1根根15146年4月21日07:56 logback_broker.xml
  -rw-r - r - 1根根3789年4月21日07:56 logback_tools.xml  
  

说明:   

      <李> 2 m-noslave:多主模式李   <李> 2 m-2s-sync:多主多从模式,同步双写李   <李> 2 m-2s-async:多主多从模式,异步复制李   
  

RocketMQ默认提供的配置文件都是最基本的,很多配置都是默认值,在生产环境中我们需要根据实际情况进行修改。样例配置如下:

  
 <代码类=" language-bash "> #所属集群名字
  brokerClusterName=rocketmq-cluster
  #代理名字,注意此处不同的配置文件填写的不一样
  brokerName=达成| broker-b
  # 0表示,在0表示奴隶
  brokerId=0
  #命名服务器地址,分号分割
  namesrvAddr=192.168.1.101:9876; 192.168.1.102:9876
  #在发送消息时,自动创建服务器不存在的话题,默认创建的队列数
  defaultTopicQueueNums=4
  #是否允许代理自动创建主题,建议线下开启,线上关闭
  autoCreateTopicEnable=true
  #是否允许代理自动创建订阅组,建议线下开启,线上关闭
  autoCreateSubscriptionGroup=true
  #经纪人对外服务的监听端口
  为=10911
  #删除文件时间点,默认凌晨4点
  deleteWhen=04
  #文件保留时间,默认48小时
  fileReservedTime=120
  # commitLog每个文件的大小默认1 g
  mapedFileSizeCommitLog=1073741824
  # ConsumeQueue每个文件默认存30 w条,根据业务情况调整
  mapedFileSizeConsumeQueue=300000
  # destroyMapedFileIntervalForcibly=120000
  # redeleteHangedFileInterval=120000
  #检测物理文件磁盘空间
  diskMaxUsedSpaceRatio=88
  #存储路径
  storePathRootDir=/usr/地方/alibaba-rocketmq/商店
  # commitLog存储路径
  storePathCommitLog=/usr/地方/alibaba-rocketmq/存储/commitlog
  #消费队列存储路径存储路径
  storePathConsumeQueue=/usr/地方/alibaba-rocketmq/存储/consumequeue
  #消息索引存储路径
  storePathIndex=/usr/地方/alibaba-rocketmq/商店/索引
  #检查点文件存储路径
  storeCheckpoint=/usr/地方/alibaba-rocketmq/商店/检查站
  #中止文件存储路径
  abortFile=/usr/地方/alibaba-rocketmq/商店/中止
  #限制的消息大小
  maxMessageSize=65536
  # flushCommitLogLeastPages=4
  # flushConsumeQueueLeastPages=2
  # flushCommitLogThoroughInterval=10000
  # flushConsumeQueueThoroughInterval=60000
  #经纪人的角色
  #——ASYNC_MASTER异步复制的主人
  #——SYNC_MASTER同步双写的主人
  #——奴隶
  brokerRole=ASYNC_MASTER
  #刷盘方式
  #——ASYNC_FLUSH异步刷盘
  #——SYNC_FLUSH同步刷盘
  flushDiskType=ASYNC_FLUSH
  # checkTransactionMessageEnable=false
  #发消息线程池数量
  # sendMessageThreadPoolNums=128
  #拉消息线程池数量
  # pullMessageThreadPoolNums=128 

RocketMQ集群部署方式总结