rocketmq2master模式集群搭建

RocketMQ 是一款分布式、队列模型的消息中间件,具有以下特点:

  • 能够保证严格的消息顺序
  • 提供丰富的消息拉取模式
  • 高效的订阅者水平扩展能力
  • 实时的消息订阅机制 亿级消息堆积能力
    更多介绍参考github地址:rocketmq

Rocketmq[双master模式搭建]

一、服务器及环境说明

1.服务器说明

IP 角色 模式
192.168.1.121 rocketmqnameserver1,broker-a Master1
192.168.1.122 rocketmqnameserver2,broker-b Master2

2.系统环境
visualbox 5.1.8 及 centos 6.5

二、Rocketmq安装与配置

  1. 分别设置两个虚拟机的静态IP地址
    # vim /etc/sysconfig/network-scripts/ifcfg-eth0
    rocketmq2master模式集群搭建_第1张图片
    QQ图片20161129223029.png

    然后重新启动网卡 service network restart
    另外一台机器也是同样的设计知识ip地址设置的不一样
  2. 设置主机名
    以121机器为例
    # vim /etc/hosts 添加如下
    192.168.1.121 rocketmq-nameserver1
    192.168.1.121 rocketmq-nameserver2
    不仅修改hosts文件,还要修改/etc/sysconfig/network,笔者在这里坑了好久
    # vim /etc/sysconfig/network 添加如下
    NETWORKING=yes
    HOSTNAME=rocketmq-nameserver1
    使用source /etc/sysconfig/network命令,使修改立即生效或者注销系统,新打开终端,看是命令提示符的主机是否已经更新了。注:另一台机器也是如此操作!
  3. 防火墙设置
    如果是开发环境 # service iptables stop 直接关闭防火墙
    若是生产环境就需要配置防火墙,增加端口规则,默认nameserver端口是9876,笔者直接就关闭防火墙服务
    注:另一台机器也是如此操作!
  4. JDK安装设置
    1. jdk-8u111-linux-x64.tar.gz 下载jdk放置/usr/local/software
    2. tar -zxvf jdk-8u111-linux-x64.tar.gz -C . 解压到当前文件夹
    3. mv jdk-8u111-linux-x64 jdk1.8 重命名
    4. vim /etc/profiles 设置环境变量


      QQ图片20161129230513.png
    5. source /etc/profile 让配置生效
      注:另一台机器也是如此操作!
  5. Rocketmq安装与配置(以3.2.6为例)
    1. 下载alibaba-rocketmq-3.2.6.tar.gz 放置/usr/local/software
    2. tar -zxvf alibaba-rocketmq-3.2.6.tar.gz -C /usr/local 解压
    3. ln -s alibaba-rocketmq-3.2.6 rocketmq 建立软连接
    4. mkdir /usr/local/rocketmq/store 存储路径
    5. mkdir /usr/local/rocketmq/store/commitlog commitLog 存储路径
    6. mkdir /usr/local/rocketmq/store/consumequeue 消费队列存储路径存储路径
    7. mkdir /usr/local/rocketmq/store/index 消息索引存储路径
    8. 修改broker的配置文件,注意现在搭建的是2master模式配置文件就在2m-nosalve下
      # vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties
      rocketmq2master模式集群搭建_第2张图片
      QQ图片20161129231524.png

      这里主要注意的是brokerName以及namesrnName的地址需要与hosts设置的一致
      注:另一台机器编辑的是 # vim /usr/local/rocketmq/conf/2m-noslave/broker-b.properties文件,brokerName=broker-b
    9. 修改日志配置文件
      # mkdir -p /usr/local/rocketmq/logs
      # cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml
      注:另一台机器也是如此操作!
    10. 修改启动参数
      因为是开发环境并且是虚拟机,内存没有那么大,所以需要将他们的参数调小,但是最好不要低于1G。若是生产环境,当然越大越好,默认配置是4G。
      # 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"
      注:另一台机器也是如此操作!
    11. 启动两台的namesrv
      # cd /usr/local/rocketmq/bin
      # nohup sh mqnamesrv &
      因为rocketmq是java开发的,所以通过jps命令查看namesrv有没有启动,当然通过日志文件也可以,namesrv正常启动之后,后续再分别启动Broker
    12. 启动BrokerServer[192.168.1.121]
      # cd /usr/local/rocketmq/bin
      # nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
      # jps 查看进程
      # tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log
      # tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
    13. 启动BrokerServer[192.168.1.122]
      # cd /usr/local/rocketmq/bin
      # nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &
      # jps 查看进程
      # tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log
      # tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

你可能感兴趣的:(rocketmq2master模式集群搭建)