disconf的简单使用与远程配置更改为使用本地配置

Posted sean-zeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了disconf的简单使用与远程配置更改为使用本地配置相关的知识,希望对你有一定的参考价值。

这几天因为阿里云迁移到腾讯云的原因,原来服务器上的disconf不再使用了。在这段时间里,系统出现的bug很难寻找原因(项目起不来),现在想要把disconf远程配置更改成直接使用本地配置。首先,了解一下disconf的使用:看官方文档,前两节就差不多了

disconf官方文档:https://disconf.readthedocs.io/zh_CN/latest/

你可以从上面的链接中另外打开一个窗口,方便阅读。从官方文档可以看出,远程配置更改为本地配置基本不需要改动什么代码,只需要将下面属性设置为false即可disconf.enable.remote.conf=false。很简单。

而我在启动时初始化redis没有读取到redis配置文件,也可以使用下面的方法来使用Spring的Bean从配置中注入值到实体类中:

redis.properties

sharded.redis.hosts=10.202.114.65:9156,10.202.114.65:9157,10.202.114.65:9158
sharded.redis.masters=ISS
sharded.redis.type=SENTINEL
sharded.redis.password=

spring配置文件中增加一个bean:

<bean id="redisSettings" class="com.sf.dds.znfj.config.RedisSettings">
  <property name="shardedHosts" value="${sharded.redis.hosts}" />
  <property name="shardedPassword" value="${sharded.redis.password}" />
  <property name="connectionTimeout" value="${redis.connectionTimeout}" />
  <property name="soTimeout" value="${redis.soTimeout}" />
  <property name="maxAttempts" value="${redis.maxAttempts}" />
</bean>

RedisSettings:

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

    private int connectionTimeout;

    private int soTimeout;

    private int maxAttempts;

    private String sortPassword;

    private String shardedPassword;

    @DisconfFileItem(name = "sharded.redis.hosts", associateField = "shardedHosts")
    public String getShardedHosts() {
        return shardedHosts;
    }

    public void setShardedHosts(String shardedHosts) {
        this.shardedHosts = shardedHosts;
    }
    //省略其他set/get
}

以上是关于disconf的简单使用与远程配置更改为使用本地配置的主要内容,如果未能解决你的问题,请参考以下文章

disconf:服务端使用总结

将本地数据 json 更改为远程数据 json

Disconf实践指南:改造篇

Disconf使用简单Demo

Disconf实践指南:安装篇

使用 Git 将远程“来源”更改为“上游”