RocketMQ搭建集群步骤-创新互联

  1. 准备材料:
    • Linux操作环境( 假设两台服务器ip为:192.168.74.130和192.168.74.131);
    • RocketMQ
    • JDK 1.8+
  2. 分别修改两台服务RockerMQ的配置文件,路径为:rocketmq-4.6.1/conf/2m-2s-async(这里以异步为例)
  • broker-a.properties(broker a的Master配置文件)  broker-a-s.properties(broker a的Slave配置文件)
  • broker-b.properties(broker b的Master配置文件)  broker-b-s.properties(broker b的Slave配置文件)

    莲都ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

    130服务器修改 a的master 与 b 的slave配置文件,131服务器修改 b的master 与 a 的slave配置文件;

    这里以130的配置文件为例:
    master文件:

                       brokerClusterName=DefaultCluster
                       #broker 名称
                       brokerName=broker-a
                       # broker id 0-Master 其他-Slave
                       brokerId=0
                       deleteWhen=04
                       fileReservedTime=48
                       brokerRole=ASYNC_MASTER
                       flushDiskType=ASYNC_FLUSH
                       #namesrv地址列表,多个用,或;分割              
                       namesrvAddr=192.168.74.130:9876;192.168.74.131:9876
                       #监听端口,默认为10911,多个broker 端口不能相同
                       listenPort=10911
                       #日志 同一台服务器上多个broker的配置路径不能为相同,否则报错:服务已经启动
                       storePathRootDir=/data/rocketmq/store/rootdir-a
                       storePathCommitLog=/data/rocketmq/store/commitlog-a

    slave文件:

                       brokerClusterName=DefaultCluste
                       brokerName=broker-b
                       brokerId=1
                       deleteWhen=04
                       fileReservedTime=48
                       brokerRole=SLAVE
                       flushDiskType=ASYNC_FLUS
                       listenPort=10921
                       namesrvAddr=192.168.74.130:9876,192.168.74.131:9876
                       storePathRootDir=/data/rocketmq/store/rootdir-b-s
                       storePathCommitLog=/data/rocketmq/store/commitlog-b-s
  1. 启动步骤

    • 分别启动两台服务器的NameSrv (默认端口号为9876)
      nohup sh bin/mqnamesrv &;
    • 分别启动两天服务器的master broker  -c 参数指定启动时读取的配置文件的路径,不加读取默认的配置文件
      nohup sh bin/mqbroker -c ./conf/2m-2s-async/broker-a.properties  & //130上执行启动a broker的master
      nohup sh bin/mqbroker -c ./conf/2m-2s-async/broker-b.properties  & //131上执行启动b broker的master
    • 分别启动两台服务器的slave broker
      nohup sh bin/mqbroker -c ./conf/2m-2s-async/broker-b-s.properties  & //130上执行启动b broker的slave
      nohup sh bin/mqbroker -c ./conf/2m-2s-async/broker-b.properties  & //131上执行启动a broker的slave
  2. 使用 jps 命令进行查看服务是否启动
    [root@localhost bin]# jps
    5329 Jps
    3161 NamesrvStartup
    3401 BrokerStartup
    4509 BrokerStartup

    到这里就成功的启动起来了。

  3. 其他命令
    关闭broker : sh bin/mqshutdown broker
    关闭namesrv:sh bin/mqshutdown namesrv
  4. 问题总结:
    1.启动broker时报jvm内存不足
    原因:默认jvm 内存配置高于物理内存配置
    解决方法:修改bin目录下runbroker.sh、runserver.sh
    JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m"
    JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    2.broker 无法注册另外一台namesrv
    原因:
    1. 网络不可达 (检查网络)
    2. 检查防火墙是否开启(关闭防火墙命令 systemctl stop firewalld)
      3.启动多个broker时报broker已启动
      原因:
      1.启动时没有指定配置文件或未修改配置文件监听端口,导致端口冲突;
      2.未指定日志文件路径或路径一致;

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前名称:RocketMQ搭建集群步骤-创新互联
本文来源:http://myzitong.com/article/dophie.html