美文网首页
linux 下搭建rokectMQ集群

linux 下搭建rokectMQ集群

作者: 逃离魔爪 | 来源:发表于2017-12-23 15:55 被阅读64次

    官网地址: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 文件配置:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <appender name="DefaultAppender"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/broker_default.log</file>
            <append>true</append>
            <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                <fileNamePattern>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/broker_default.%i.log
                </fileNamePattern>
                <minIndex>1</minIndex>
                <maxIndex>5</maxIndex>
            </rollingPolicy>
            <triggeringPolicy
                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <maxFileSize>100MB</maxFileSize>
            </triggeringPolicy>
            <encoder>
                <pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
                <charset class="java.nio.charset.Charset">UTF-8</charset>
            </encoder>
        </appender>
    
    
        <appender name="RocketmqBrokerAppender"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/broker.log</file>
            <append>true</append>
            <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                <fileNamePattern>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/broker.%i.log
                </fileNamePattern>
                <minIndex>1</minIndex>
                <maxIndex>30</maxIndex>
            </rollingPolicy>
            <triggeringPolicy
                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <maxFileSize>100MB</maxFileSize>
            </triggeringPolicy>
            <encoder>
                <pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
                <charset class="java.nio.charset.Charset">UTF-8</charset>
            </encoder>
        </appender>
    
        <appender name="RocketmqStoreAppender"
                  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/store.log</file>
            <append>true</append>
            <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                <fileNamePattern>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/store.%i.log
                </fileNamePattern>
                <minIndex>1</minIndex>
                <maxIndex>30</maxIndex>
            </rollingPolicy>
            <triggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <maxFileSize>100MB</maxFileSize>
            </triggeringPolicy>
            <encoder>
                <pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
                <charset class="java.nio.charset.Charset">UTF-8</charset>
            </encoder>
        </appender>
    
        <appender name="RocketmqRemotingAppender"
                  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/remoting.log</file>
            <append>true</append>
            <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                <fileNamePattern>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/remoting.%i.log
                </fileNamePattern>
                <minIndex>1</minIndex>
                <maxIndex>30</maxIndex>
            </rollingPolicy>
            <triggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <maxFileSize>100MB</maxFileSize>
            </triggeringPolicy>
            <encoder>
                <pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
                <charset class="java.nio.charset.Charset">UTF-8</charset>
            </encoder>
        </appender>
    
        <appender name="RocketmqStoreErrorAppender"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/storeerror.log</file>
            <append>true</append>
            <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                <fileNamePattern>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/storeerror.%i.log
                </fileNamePattern>
                <minIndex>1</minIndex>
                <maxIndex>30</maxIndex>
            </rollingPolicy>
            <triggeringPolicy
                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <maxFileSize>100MB</maxFileSize>
            </triggeringPolicy>
            <encoder>
                <pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
                <charset class="java.nio.charset.Charset">UTF-8</charset>
            </encoder>
        </appender>
    
    
        <appender name="RocketmqTransactionAppender"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/transaction.log</file>
            <append>true</append>
            <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                <fileNamePattern>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/transaction.%i.log
                </fileNamePattern>
                <minIndex>1</minIndex>
                <maxIndex>5</maxIndex>
            </rollingPolicy>
            <triggeringPolicy
                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <maxFileSize>100MB</maxFileSize>
            </triggeringPolicy>
            <encoder>
                <pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
                <charset class="java.nio.charset.Charset">UTF-8</charset>
            </encoder>
        </appender>
    
    
        <appender name="RocketmqRebalanceLockAppender"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/lock.log</file>
            <append>true</append>
            <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                <fileNamePattern>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/lock.%i.log
                </fileNamePattern>
                <minIndex>1</minIndex>
                <maxIndex>5</maxIndex>
            </rollingPolicy>
            <triggeringPolicy
                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <maxFileSize>100MB</maxFileSize>
            </triggeringPolicy>
            <encoder>
                <pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
                <charset class="java.nio.charset.Charset">UTF-8</charset>
            </encoder>
        </appender>
    
        <appender name="RocketmqStatsAppender"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/stats.log</file>
            <append>true</append>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>/root/app/rocketmq-3.4.6/rocketmq-log-data/logs/rocketmqlogs/otherdays/stats-%d{yyyy-MM-dd}.%i.log
                </fileNamePattern>
                <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>500MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
                <MaxHistory>10</MaxHistory>
            </rollingPolicy>
            <encoder>
                <pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p - %m%n</pattern>
                <charset class="java.nio.charset.Charset">UTF-8</charset>
            </encoder>
        </appender>
    
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <append>true</append>
            <encoder>
                <pattern>%d{yyy-MM-dd HH\:mm\:ss,GMT+8} %p %t - %m%n</pattern>
                <charset class="java.nio.charset.Charset">UTF-8</charset>
            </encoder>
        </appender>
    
        <logger name="RocketmqBroker" additivity="false">
            <level value="INFO" />
            <appender-ref ref="RocketmqBrokerAppender" />
        </logger>
    
        <logger name="RocketmqCommon" additivity="false">
            <level value="INFO" />
            <appender-ref ref="RocketmqBrokerAppender" />
        </logger>
    
        <logger name="RocketmqStore" additivity="false">
            <level value="INFO" />
            <appender-ref ref="RocketmqStoreAppender" />
        </logger>
    
        <logger name="RocketmqStoreError" additivity="false">
            <level value="INFO" />
            <appender-ref ref="RocketmqStoreErrorAppender" />
        </logger>
    
        <logger name="RocketmqTransaction" additivity="false">
            <level value="INFO" />
            <appender-ref ref="RocketmqTransactionAppender" />
        </logger>
    
        <logger name="RocketmqRebalanceLock" additivity="false">
            <level value="INFO" />
            <appender-ref ref="RocketmqRebalanceLockAppender" />
        </logger>
    
        <logger name="RocketmqRemoting" additivity="false">
            <level value="INFO" />
            <appender-ref ref="RocketmqRemotingAppender" />
        </logger>
    
        <logger name="RocketmqStats" additivity="false">
            <level value="INFO" />
            <appender-ref ref="RocketmqStatsAppender" />
        </logger>
    
        <root>
            <level value="INFO" />
            <appender-ref ref="DefaultAppender" />
        </root>
    </configuration>
    

    相关文章

      网友评论

          本文标题:linux 下搭建rokectMQ集群

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