zoukankan      html  css  js  c++  java
  • Apollo 配置中心

    Apollo(https://github.com/ctripcorp/apollo)是一个配置中心,支持从应用、环境、集群维度去管理配置,也支持从公共,私有维度去管理配置。 满足了大部分的配置场景。 
    作为一个配置中心:
    1. 配置项的保存,基本都会放到数据库中。 这里apollo使用的是mysql. 
    2. 变更配置如何通知到客户端, 一般是使用zookeeper, 比如百度的disconf, 这里apollo使用的是http长轮询。 
    3. 配置的高可用,一般都会在本地会有一个配置文件的副本。 即使配置中心挂了,应用还是能够启动, 只是配置可能不是最新的。 apollo就是这种配置。 
    4. 最后就是配置的SDK如何与应用集成。 这个就不展开了。 
     
    apollo关于配置变更通知这块,主要分为了2个部分:
    1.  如何发现配置变更?  apollo解耦了「配置变更」和「配置变更发布」, 配置变更就是一个数据库操作,除了保存本身的配置信息,还会新增保存一个「ReleaseMessage」到数据库, 表示有变更发生, config server中的一个线程,每隔1S扫描「ReleaseMessage」表, 以此发现变更的配置。
    2. 如何通知客户端? 使用的是http的长轮询, 客户端在启动后,会连接cofig server, 连接90秒超时, config server收到请求会hang到服务端不返回, 如果90秒内没有配置变更,就自动返回, 如果在90秒内有配置变更,请求会立刻返回,并且携带namespace。 客户端收到请求后,会立刻重新请求服务端。
     
  • 相关阅读:
    leetcode-409
    leetcode-836
    leetcode-1160
    leetcode-面试题13
    leetcode-695
    go的一些小lib
    leetcode-300
    cookie
    php上传文件
    PHP 文件创建/写入
  • 原文地址:https://www.cnblogs.com/beyondbit/p/13466695.html
Copyright © 2011-2022 走看看