Skip to content

参数配置 动态参数

ShenJW edited this page Feb 29, 2016 · 75 revisions
  • 什么是动态参数
    服务发布后可以通过@See[Kepler Admin]实时调整的参数集合,包括:
    • @See[常用参数]及其他特性中声明支持动态参数的框架配置
    • @Config声明的业务服务配置

  • @Config
     	name=kepler
    
    • 在服务中添加@Config标签配置:
     	@Config(value = "name", init = true)
     	public void name(String name) {
     		this.name = name;
     	}
    
    @Config.value表示动态参数配置文件的Key,@Config.init表示是否在Spring初始化期间进行赋值
  • 动态参数配置文件备份
    • @See[Kepler Admin]动态参数回调完毕将对磁盘配置同步,并对历史配置备份
    • 通过添加应用启动参数可以关闭历史配置备份,默认true
      java -jar -Dbackup=false [启动包].jar
  • 动态参数配置文件加载(@See[kepler.dynamic]):
    • 默认从ClassPath加载
    • 通过添加应用启动参数可以修改加载文件
      java -jar -Ddynamic=[(file://|url://)] [启动包].jar
      @See[加载路径的支持格式]
  • 动态参数回调同一时刻仅允许一个线程(基于ZooKeeper Watcher)
    • 通过添加@Async使同步回调异步化,为某些场景(如触发器)提供可能:
     	@Async  
     	@Config(value = "trigger")
     	public void dosomthing(String name) {
     		// todo
     	}
    
    动态参数回调完毕后会向@See[Kepler Admin]同步最新配置。添加@Async将无法保证配置的强一致性。
  • 动态参数变动通知(@See[ConfigAware])
    不同于@Config针对特定配置的回调,ConfigAware用于配置变更后的通知
     	public void changed(Map<String, String> current, Map<String, String> newconfig);
    
Clone this wiki locally