• 台风骆骆
    2019-12-09
    学习本篇文章收获:
    1、配置中心的配置是需要分级的,如全局,机房,个性,可以减少存储,提高复用性。
    2、当前配置中心主要有拉和推两种,拉就是定时去轮循获取,这里为了减少带宽,一开始是拿着本地的md5去看下是否配置有变更,如果没有变更,就不用拉取,如果有变更,再去拉取新的配置项。推就是需要保持长连接了,服务端还要维护客户端那边关注的配置项,一旦有配置项变更,就通知客户端。
    3、配置中心是可用性高于性能的,配置中心客户端除了要维护内存配置项,还要维护一个文件的配置项,这个是异步同步的,一旦配置中心服务器挂了,可以降级读取本地文件的配置项内容。
    
     5
  • 👽
    2019-12-19
    个人总结:

    配置中心:就相当于云。将配置内容挂载到云上,所有服务器根据自己的情况取自己需要的配置。

    配置分级:类似于面向对象编程中子类和父类的。父类已有的方法可以满足要求时,可以直接用。如果自己有额外业务,那就复写父类的方法。

    配置变更通知:类似于设计模式的发布订阅模式。再有新配置内容发布的时候,要保证通知所有需要同步配置的客户端。

    配置中心性能指标: 因为配置中心并发量与请求响应时间的要求并不高。因为一个客户端可能很久才需要更新一次配置,所以可用性才是最主要的指标。
    展开

    作者回复: 赞

    
     3
  • longslee
    2019-12-17
    打卡。 zk 是 满足 CP,那么那几个基于 zk 的开源配置中心是怎么做到高可用的呢?
    呃,我们的配置,似乎是反过来的哈哈,由一个配置中心定期生成一个静态文件,客户端直接引入这个路径下的文件...

    作者回复: 一般就是在客户端会有一个灾备文件,有的还会在服务端做多级缓存。

    
     2
  • 丁丁历险记
    2019-12-26
    md5 值判断更新,这个套路常用。

    作者回复: 是的,很常见

    
     1
  • 何磊
    2019-12-09
    使用配置中心遇到的几个问题
    1. 配置中心也是keyvalue的方式存储或者说返回,需要按照服务纬度拉取配置,所以本地还是要在配置文件中写明要拉取配置的服务名
    2. 我们实际操作中将配置中心跟注册中心整合了,本地配置记录服务名,注册中心不仅记录服务的node还记录相关配置。比如:db的账号密码。如果是只有配置也可以用这种方式,该方式对于agent维护成本降低

    作者回复: 👍

     1
     1
  • 许凯
    2019-12-09
    变更通知时,如果使用长连接,但实际没有送达怎么办呢?要对应答做个标记,再做个定时检查标记吗

    作者回复: 一般会长连短连结合的方式,短连定期轮询,长连负责推送

    
     1
  • 被秒
    2019-12-09
    我个人更喜欢在环境变量的方式读配置,毕竟无宕机的rolling update的实现已经是标配了。毕竟引入一个重量级的配置中心的就引入了复杂度, 尤其是那些需要侵入的方式。
    
     1
  • Keith
    2019-12-20
    "轮询查询就是告诉配置中心,我与这个配置相关", 客户端订阅后, 配置中心不就存储了订阅者的信息?

    作者回复: 是的,长连就是这种思路~

    
    
  • Keith
    2019-12-14
    配置中心中配置的变更是通过什么方式? 可以只通过配置中心客户端吗? 如果可以, 那就不需要轮询了, 只需在配置变更后, 查到改配置相关的订阅者, 发送通知即可

    作者回复: 是的,问题是怎么查到相关的订阅者呢?轮询查询就是告诉配置中心,我与这个配置相关

     1
    
  • 吃饭饭
    2019-12-09
    git 的钩子触发变更也是不错的选择
    
    
  • 知行合一
    2019-12-09
    配置中心怎么才能实现6个9的系统呢?

    作者回复: 主要是做好容灾

    
    
我们在线,来聊聊吧