disconf-web实现真正意义上的统一上线包

java技术文章

2018-10-10

32

0

8.1. 问题

一直以来,凡是使用 disconf的程序均需要 disconf.properties ,在这个文件里去控制 app/env/version。

因此,我们要部署到不同的环境中,还是需要 不同的 disconf.properties

有一种解决方法是,通过 jenkins 来进行打包,准备多份 disconf.properties 文件。

8.2. 解决方法

真正的解决方法是,使用 java 命令行参数

目前 disconf 已经支持 disconf.properties 中所有配置项 通过参数传入方式 启动。

支持的配置项具体可参见:

配置文件 disconf.properties 说明

所有配置均可以通过 命令行 -Dname=value 参数传入。

配置项 说明 是否必填 默认值
disconf.conf_server_host 配置服务器的 HOST,用逗号分隔 ,示例:127.0.0.1:8000,127.0.0.1:8000 必填
disconf.app APP 请采用 产品线_服务名 格式 优先读取命令行参数,然后再读取此文件的值
disconf.version 版本号, 请采用 X_X_X_X 格式 默认为 DEFAULT_VERSION。优先读取命令行参数,然后再读取此文件的值,最后才读取默认值。
disconf.enable.remote.conf 是否使用远程配置文件,true(默认)会从远程获取配置, false则直接获取本地配置 false
disconf.env 环境 默认为 DEFAULT_ENV。优先读取命令行参数,然后再读取此文件的值,最后才读取默认值
disconf.ignore 忽略的分布式配置,用空格分隔
disconf.debug 调试模式。调试模式下,ZK超时或断开连接后不会重新连接(常用于client单步debug)。非调试模式下,ZK超时或断开连接会自动重新连接。 false
disconf.conf_server_url_retry_times 获取远程配置 重试次数,默认是3次 3
disconf.conf_server_url_retry_sleep_seconds 获取远程配置 重试时休眠时间,默认是5秒 5
disconf.user_define_download_dir 用户定义的下载文件夹, 远程文件下载后会放在这里。注意,此文件夹必须有有权限,否则无法下载到这里 ./disconf/download
disconf.enable_local_download_dir_in_class_path 下载的文件会被迁移到classpath根路径下,强烈建议将此选项置为 true(默认是true) true

自定义 disconf.properties 文件的路径

一般情况下,disconf.properties 应该放在应用程序的根目录下,如果想自定义路径可以使用:

-Ddisconf.conf=/tmp/disconf.properties

这样的话,未来大家只要通过 Java 参数 就可以 动态的改变启动的 app/env/version

standalone 启动示例

java  -Ddisconf.env=rd \
    -Ddisconf.enable.remote.conf=true \
    -Ddisconf.conf_server_host=127.0.0.1:8000 \
    -Dlogback.configurationFile=logback.xml \
    -Dlog4j.configuration=file:log4j.properties \
    -Djava.ext.dirs=lib \
    -Xms1g -Xmx2g -cp ampq-logback-client-0.0.1-SNAPSHOT.jar \
    com.github.knightliao.consumer.ConsumerMain >/dev/null 2>&1 &

这里表示使用 disconf.env=rd

tomcat 启动示例

欢迎访问:www.hongfu951.com博客,查看更多文章

发表评论

全部评论:0条

鸿福951

努力打造一个好用的webui

热评文章

推荐文章