SOFAArk 配置说明

本文介绍 SOFAArk 的配置目录,以及各配置说明。

SOFAArk 配置目录

SOFAArk 的配置目录不是必须存在,如果需要,统一放在工程根目录${baseDir}/conf/ark下。执行 sofa-ark-maven-plugin 打包时,会自动将该目录下的配置打包至 Ark 包。Ark 包置目录示例如下:

├── META-INF
│    └── MANIFEST.MF
├── SOFA-ARK
│    ├── biz
│    │    └── demo-0.0.1-SNAPSHOT-ark-biz.jar
│    └── container
│         └── sofa-ark-all-0.6.0-SNAPSHOT.jar
├── com
│    └── alipay
│         └── sofa
│              └── ark
│                   ├──...
│
└── conf
     └── ark
          ├── bootstrap-dev.properties
          ├── bootstrap.properties
          └── log
               └── logback-conf.xml
重要

如果应用中包含 SOFAArk 配置,打包时需要注意 baseDir 配置,此项用于指定工程根目录。更多信息请参见 Ark 包

上述 conf/ark 目录可以配置 SOFAArk 容器的启动配置以及日志配置。conf/ark/bootstrap.properties 是 SOFAArk 容器默认启动配置文件,配置内容包括:日志配置、Plugin 激活和钝化配置、Biz 激活和钝化配置。

日志配置

SOFAArk 容器日志内部实现使用 logback,日志配置参数包括:

  • logging.path:容器日志目录根路径,默认打印在${user.admin}/logs目录。

    此项只影响 SOFAArk 容器日志路径,不影响应用日志,应用自身日志由自身配置决定。

  • logging.level.com.alipay.sofa.ark:设置 SOFAArk 容器日志级别,默认为 INFO。

  • logging.config.com.alipay.sofa.ark:指定自定义日志配置文件名,用于覆盖 SOFAArk 容器自带的日志配置文件。建议自定义配置文件放在conf/ark/log目录中。

  • sofa.middleware.log.com.alipay.sofa.ark.console:配置容器日志是否打印在 console,默认为false

  • sofa.middleware.log.com.alipay.sofa.ark.console.level:配合sofa.middleware.log.com.alipay.sofa.ark.console配置项使用。如果打印在 console,此项项用于配置 SOFAArk 容器打印在 console 的日志级别。

插件配置

  • ark.plugin.active.include:指定激活哪些插件,多个插件使用英文逗号(,)分隔。默认激活 Ark 包中所有的插件。

  • ark.plugin.active.exclude:指定排除哪些插件,多个插件使用英文逗号(,)分隔。默认为空。

    重要

    如果同时配置了这两个属性,以ark.plugin.active.include为准。

Biz 配置

  • ark.biz.active.include:指定激活哪些 Biz,多个 Biz 使用英文逗号(,)分隔。默认激活 Ark 包中所有的 Biz。

  • ark.biz.active.exclude:指定排除哪些 Biz,多个 Biz 使用英文逗号(,)分隔。默认为空。

  • com.alipay.sofa.ark.master.biz:指定宿主 Biz 名,默认设置为宿主 Biz。如果 Ark 包中只有一个 Biz,则无需设置此项;否则需要根据实际情况设置。

    重要

    如果同时配置了前两个属性,以ark.biz.active.include为准。

动态配置

SOFAArk 提供了对接 Zookeeper 的插件,用于动态接收 Biz 指令。配置格式如下:

com.alipay.sofa.ark.config.address=zookeeper://ip:port?key1=value1&key2=value2
重要

如果配置了动态配置,SOFAArk 会优先根据动态配置控制 Biz 的部署。所以,如果您配置了com.alipay.sofa.ark.config.address,且 Ark 包中打入了多个 Biz,则只会启动宿主应用(Master Biz)。

Profile 机制

SOFAArk 容器默认使用bootstrap.properties配置,实际开发中,可能根据运行环境加载不同的配置。SOFAArk 提供了 profile 机制,当您指定 profile 值时,SOFAArk 容器会加载bootstrap-${profile}.properties配置文件。

指定 profile 的配置的方式如下:

  • 通过 -D VM 参数传入

    例如:-Dark.profile=dev,dev2,多个值使用英文逗号(,)隔开。

  • 通过应用启动参数传入

    例如:java -jar demo-executable-ark.jar -Aprofile=dev,dev2,多个值英文逗号(,)隔开。