linux 下搭建rokectMQ集群

官网地址:https://github.com/alibaba/RocketMQ/releases/tag/v3.4.6

用三台机器搭建集群,3 namesrv、3 master、3 slave:

ip1    nameSrv1     broker-a      broker-c-s
ip2    nameSrv2     broker-a-s    broker-b
ip3    nameSrv3     broker-b-s    broker-c

或者三台机器搭建,3 namesrv、2 master、2 slave:

ip1    namesrv1   broker-a
ip2    namesrv2   broker-a-s   broker-b-s
ip3    namesrv3   broker-b     rocketmq-console

这样保证高可用,各自的从机放在另一台机子上,如果一台机子宕机了,那master是会自动切换,另一个slave还可以消费宕机的那台的master的消息。

主配置文件 conf/2m-2s-async/:

#broker 名称

brokerName=broker-a #改成对应的名称

#broker IDs

brokerId=0 #主为0,从为比0大的数

#监听端口

listenPort=10910

#指定本节点rmq使用的ip,强制使用万兆网卡的ip

#brokerIPI=10.249.130.134
#如果ip乱窜就配置IP地址
brokerIP1=192.168.206.130

#消息存放地址

storePathRootDir=/root/app/rocketmq-3.4.6/rocketmq-log-data/store

storePathCommitLog=/root/app/rocketmq-3.4.6/rocketmq-log-data/commitlog

brokerRole=ASYNC_MASTER

# namesrv  地址 namesrv1:port;namesrv2:portnamesrv3:port

namesrvAddr=192.168.206.128:9876;192.168.206.129:9876;192.168.206.130:9876

#broker刷盘策略   同步刷盘SYNC_MASTER 异步刷盘ASYNC_MASTER

#清除磁盘策略  同步清除刷盘 SYNC_FLUSH  异步清除刷盘 ASYNC_FLUSH

flushDiskType=ASYNC_FLUSH

#文件保留时间,14天

fileReservedTime=336

####################################基本不变配置######################################

#是否自动创建TOPIC

autoCreateTopicEnable=true

#是否自动创建订阅组

autoCreateSubscriptionGroup=true

#生产则默认最大队列数 默认8

defaultTopicQueueNums=16

#ConsumeQueue每个文件大小 默认存储30W条消息

mapedFileSizeConsumeQueue=50000000

#发消息线程池数量 (默认:16 + Runtime.getRuntime().availableProcessors() * 4)

sendMessageThreadPoolNums=128

#拉消息线程池数量 (默认:16 + Runtime.getRuntime().availableProcessors() * 4)

pullMessageThreadPoolNums=128

从配置文件 conf/2m-2s-async/:

#broker 名称

brokerName=broker-a #改成对应的名称

#broker IDs

brokerId=1  #主为0,从为比0大的数

#监听端口

listenPort=20910

#指定本节点rmq使用的ip,强制使用万兆网卡的ip

#brokerIPI=10.249.130.134

#如果ip乱窜就配置IP地址
brokerIP1=192.168.206.130

#消息存放地址

storePathRootDir=/root/app/rocketmq-3.4.6/rocketmq-log-data-s/store

storePathCommitLog=/root/app/rocketmq-3.4.6/rocketmq-log-data-s/commitlog

brokerRole=SLAVE

# namesrv  地址 namesrv1:port;namesrv2:portnamesrv3:port

namesrvAddr=192.168.206.128:9876;192.168.206.129:9876;192.168.206.130:9876

#broker刷盘策略   同步刷盘SYNC_MASTER 异步刷盘ASYNC_MASTER

#清除磁盘策略  同步清除刷盘 SYNC_FLUSH  异步清除刷盘 ASYNC_FLUSH

flushDiskType=ASYNC_FLUSH

#文件保留时间,14天

fileReservedTime=336

####################################基本不变配置######################################

#是否自动创建TOPIC

autoCreateTopicEnable=true

#是否自动创建订阅组

autoCreateSubscriptionGroup=true

#生产则默认最大队列数 默认8

defaultTopicQueueNums=16

#ConsumeQueue每个文件大小 默认存储30W条消息

mapedFileSizeConsumeQueue=50000000

#发消息线程池数量 (默认:16 + Runtime.getRuntime().availableProcessors() * 4)

sendMessageThreadPoolNums=128

#拉消息线程池数量 (默认:16 + Runtime.getRuntime().availableProcessors() * 4)

pullMessageThreadPoolNums=128

启动时如果报内存的相关的错误,修改runserver.sh、runbroker.sh 文件,更改内存大小:

启动脚本 runRMQ-pda.sh:

jps |grep BrokerStartup |kill -9 `awk '{print $1}'`
jps |grep NamesrvStartup |kill -9 `awk '{print $1}'`
jps |grep Bootstrap |kill -9 `awk '{print $1}'

nohup sh /root/app/rocketmq-3.4.6/alibaba-rocketmq/bin/mqnamesrv &

nohup sh /root/app/rocketmq-3.4.6/alibaba-rocketmq/bin/mqbroker -c /root/app/rocketmq-3.4.6/alibaba-rocketmq/conf/2m-2s-async/broker-a.properties &


nohup sh /root/app/rocketmq-3.4.6/alibaba-rocketmq-s/bin/mqbroker -c /root/app/rocketmq-3.4.6/alibaba-rocketmq-s/conf/2m-2s-async/broker-a-s.properties &

脚本中路径更改成自己的安装路径。
另外日志文件的输出路径也可更改:logback_broker.xml、logback_filtersrv.xml、logback_namesrv.xml、logback_tools.xml。

如 logback_broker.xml 文件配置:



    
        /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/broker_default.log
        true
        
            /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/broker_default.%i.log
            
            1
            5
        
        
            100MB
        
        
            %d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n
            UTF-8
        
    


    
        /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/broker.log
        true
        
            /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/broker.%i.log
            
            1
            30
        
        
            100MB
        
        
            %d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n
            UTF-8
        
    

    
        /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/store.log
        true
        
            /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/store.%i.log
            
            1
            30
        
        
            100MB
        
        
            %d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n
            UTF-8
        
    

    
        /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/remoting.log
        true
        
            /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/remoting.%i.log
            
            1
            30
        
        
            100MB
        
        
            %d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n
            UTF-8
        
    

    
        /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/storeerror.log
        true
        
            /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/storeerror.%i.log
            
            1
            30
        
        
            100MB
        
        
            %d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n
            UTF-8
        
    


    
        /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/transaction.log
        true
        
            /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/transaction.%i.log
            
            1
            5
        
        
            100MB
        
        
            %d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n
            UTF-8
        
    


    
        /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/lock.log
        true
        
            /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/lock.%i.log
            
            1
            5
        
        
            100MB
        
        
            %d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n
            UTF-8
        
    

    
        /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/stats.log
        true
        
            /root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/stats-%d{yyyy-MM-dd}.%i.log
            
            
                500MB
            
            10
        
        
            %d{yyy-MM-dd HH:mm:ss,GMT+8} %p - %m%n
            UTF-8
        
    

    
        true
        
            %d{yyy-MM-dd HH\:mm\:ss,GMT+8} %p %t - %m%n
            UTF-8
        
    

    
        
        
    

    
        
        
    

    
        
        
    

    
        
        
    

    
        
        
    

    
        
        
    

    
        
        
    

    
        
        
    

    
        
        
    

你可能感兴趣的:(linux 下搭建rokectMQ集群)