美文网首页
rocketmq生产环境安装(双主双从)

rocketmq生产环境安装(双主双从)

作者: 茶还是咖啡 | 来源:发表于2019-12-20 07:41 被阅读0次

    centos 7
    java 8 +

    机器集群部署图如下:


    image.png
    1. 修改/etc/hosts文件,增加如下内容
    172.16.173.128 rocketmq-nameserver1
    172.16.173.128 rocketmq-master1
    
    172.16.173.130 rocketmq-nameserver2
    172.16.173.130 rocketmq-master2
    
    172.16.173.131 rocketmq-nameserver3
    172.16.173.131 rocketmq-master1-slave
    
    172.16.173.132 rocketmq-nameserver4
    172.16.173.132 rocketmq-master2-slave
    
    1. 上传rocketmq压缩文件至/usr/local,然后将将文件解压并重命名为rocketmq
    unzip rocketmq-all-4.6.0-bin-release.zip
    mv rocketmq-all-4.6.0-bin-releaser rocketmq
    
    1. 修改配置文件
      本文基于双主双从模式搭建,所以修改2m-2s-async/文件夹中的内容
    cd conf/2m-2s-async/
    
    • broker-a.properties、broker-b.properties 配置如下:
    #所属集群名称
    brokerClusterName=rocketmq-cluster
    #broker 名字,注意此处不同的配置文件填写的不一样 
    brokerName=broker-a 
    #0 表示 Master,>0 表示 Slave
    brokerId=0
    brokerIP1=172.16.173.128 # 记得换成不同的ip
    brokerIP2=172.16.173.128 #记得换成不同的ip
    #nameServer 地址,分号分割 
    namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;rocketmq-nameserver3:9876;rocketmq-nameserver4: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
    
    • broker-a-s.properties、broker-b-s.properties 配置如下:
    #所属集群名称
    brokerClusterName=rocketmq-cluster
    #broker 名字,注意此处不同的配置文件填写的不一样 
    brokerName=broker-a
    #0 表示 Master,>0 表示 Slave
    brokerId=1
    #nameServer 地址,分号分割 
    namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;rocketmq-nameserver3:9876;rocketmq-nameserver4: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=SLAVE
    #刷盘方式
    #- ASYNC_FLUSH 异步刷盘 #- SYNC_FLUSH 同步刷盘 
    flushDiskType=ASYNC_FLUSH
    #checkTransactionMessageEnable=false 
    #发消息线程池数量 
    #sendMessageThreadPoolNums=128 
    #拉消息线程池数量 
    #pullMessageThreadPoolNums=128
    
    1. 编辑启动脚本,修改JVM占用的内存
    • vim bin/runbroker.sh
    JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"
    
    • vim bin/runserver.sh
    JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    
    1. 回到/usr/local路径,将配置好的rocketmq打包
    cd /usr/local
    tar -cvf rocketmq.tar.gz  rocketmq/
    
    1. 将打包好的mq上传到其他三台服务器
    scp rocketmq.tar.gz root@服务器IP:$PWD
    
    1. 启动mq
    • 分别启动4台机器的namesrv
    nohup sh mqnamesrv &
    
    • 分别在4台机器上启动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 &
    
    1. 启动控制台


    2. 服务停止
    • 先分别停止broker
    sh mqshutdown broker
    
    • 停止namesrv
    sh mqshutdown namesrv
    

    相关文章

      网友评论

          本文标题:rocketmq生产环境安装(双主双从)

          本文链接:https://www.haomeiwen.com/subject/ybdynctx.html