天天看點

RocketMQ Namesrv服務啟動時的參數配置添加日志配置檔案設定rocketmqHome的值

上篇文章說了一下在Namesrv啟動時,它主要做了什麼事情,從中可以知道,如果想正确的啟動或修改Namesrv的啟動配置時,會有幾種不同的方式。

添加日志配置檔案

如果是在本地Eclipse中使用Rocketmq的源碼項目啟動,需要添加日志配置檔案,在項目下建立conf檔案夾,添加配置檔案:logback-namesrv.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <appender name="DefaultAppender"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${user.home}/logs/rocketmqlogs/namesrv_default.log</file>
        <append>true</append>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/namesrv_default.%i.log.gz</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="RocketmqNamesrvAppender_inner"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${user.home}/logs/rocketmqlogs/namesrv.log</file>
        <append>true</append>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/namesrv.%i.log.gz</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="RocketmqNamesrvAppender" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="RocketmqNamesrvAppender_inner"/>
        <discardingThreshold>0</discardingThreshold>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <append>true</append>
        <encoder>
            <pattern>%d{yyy-MM-dd HH\:mm\:ss,SSS} %p %t - %m%n</pattern>
            <charset class="java.nio.charset.Charset">UTF-8</charset>
        </encoder>
    </appender>

    <logger name="RocketmqNamesrv" additivity="false">
        <level value="debug"/>
        <appender-ref ref="RocketmqNamesrvAppender"/>
        <appender-ref ref="STDOUT"/>
    </logger>

    <logger name="RocketmqCommon" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="RocketmqNamesrvAppender"/>
    </logger>

    <logger name="RocketmqRemoting" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="RocketmqNamesrvAppender"/>
    </logger>

    <logger name="RocketmqNamesrvConsole" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="STDOUT"/>
    </logger>

    <root>
        <level value="INFO"/>
        <appender-ref ref="DefaultAppender"/>
    </root>
</configuration>
           

設定rocketmqHome的值

在Namesrv服務啟動的時候,最重要的一個配置就是rocketmqHome的路徑,設定它的路徑有以下幾種方式:

  1. 設定環境變量

    在官方釋出的運作包裡面,它的啟動腳本就是使用的設定環境變量的方式。這個就不多說了。這裡主要說一下如果我們想本地排程,在Eclipse中如何設定。

    打開eclipse->run->Debug Configurations

    RocketMQ Namesrv服務啟動時的參數配置添加日志配置檔案設定rocketmqHome的值
  2. 使用JVM參數

    在eclipse中添加vm參數:

-Drocketmq.home.dir=/home/rocketmq
           
  1. 使用配置檔案

    如果使用配置檔案,隻需要在啟動指令行參數中,指定配置檔案的路徑即可。

-c /home/rocketmq/conf/namesrv.properties
           

在配置檔案中添加配置項

rocketmqHome=/home/rocketmq/
           

配置檔案中的配置項,可以是NamesrvConfig和NettyServerConfig對象中的所有字段。

#優先級

  1. 通過配置檔案配置是最高優先級,它會覆寫其它的配置。
  2. VM參數是第二優先級
  3. 環境變量是第三優先級,是預設的值。
RocketMQ Namesrv服務啟動時的參數配置添加日志配置檔案設定rocketmqHome的值

繼續閱讀