disconf-web分布式配置系统功能概述

java技术文章

2018-09-28

39

0

一、托管配置

通过简单的注解类方式 托管配置。托管后,本地不需要此配置文件,统一从配置中心服务获取。

当配置被更新后,注解类的数据自动同步

@Service
@DisconfFile(filename = "redis.properties")
public class JedisConfig {

    // 代表连接地址
    private String host;

    // 代表连接port
    private int port;

    /**
     * 地址, 分布式文件配置
     *
     * @return
     */
    @DisconfFileItem(name = "redis.host", associateField = "host")
    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    /**
     * 端口, 分布式文件配置
     *
     * @return
     */
    @DisconfFileItem(name = "redis.port", associateField = "port")
    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }
}

二、 配置更新回调

如果配置更新时,您需要的是 不仅注解类自动同步,并且其它类也需要做些变化,那么您需要一个回调来帮忙。

@Service
@Scope("singleton")
@DisconfUpdateService(classes = { JedisConfig.class }) // 这里或者写成 @DisconfUpdateService(confFileKeys = { "redis.properties" })
public class SimpleRedisServiceUpdateCallback implements IDisconfUpdate

三、支持基于XML的配置文件托管

除了支持基于注解式的配置文件,我们还支持 基于XML无代码侵入式的:

(properties文件更新时数据自动同步reload,非properties文件需要写回调来支持数据自动同步)


    
        
            classpath:/autoconfig.properties
            classpath:/autoconfig2.properties
            classpath:/myserver_slave.properties
            classpath:/testJson.json
            classpath:/testXml2.xml
            myserver.properties
        
    



    
        
            
        
    



    

四、支持配置项

变量亦支持分布式配置哦

@DisconfItem(key = key)
public Double getMoneyInvest() {
    return moneyInvest;
}

五、支持静态配置

除了支持@Service类以外,我们还支持 静态配置

@DisconfFile(filename = "static.properties")
public class StaticConfig {

    private static int staticVar;

    @DisconfFileItem(name = "staticVar", associateField = "staticVar")
    public static int getStaticVar() {
        return staticVar;
    }
}

六、支持基于XML的配置文件托管: 不会自动reload

与 支持基于XML的配置文件托管 相对应,只是在配置文件更改时,不会自动reload到java bean里。

值得说的是,此种方式支持 任意类型 格式配置文件。



    
        
            myserver.properties
        
    



    
    
    
        
            
        
    

七、过滤要进行托管的配置

有时候你不想托管所有的配置文件,有1~2个配置文件你只想和本地的,可以:

# 忽略哪些分布式配置,用逗号分隔
ignore=jdbc-mysql.properties

八、强大的WEB配置平台控制

在WEB配置平台上,您可以

  • 上传、更新 您的配置文件、配置项(有邮件通知),并且实现动态推送。
  • 批量下载配置文件,查看ZK上部署情况
  • 查看 此配置的影响范围: 哪些机器在使用,各机器上的配置内容各是什么,并且自动校验 一致性。
  • 支持 自动化校验配置一致性。
  • 简单权限控制

 

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

 

发表评论

全部评论:0条

鸿福951

努力打造一个好用的webui

热评文章

推荐文章