配置中心应用与原理剖析

配置中心的作用及地位

配置中心:分布式系统中集中化管理线上应用程序配置项的管理中心

为什么要用配置中心

本地配置缺点:

  • 重启生效
  • 不易维护
  • 生效慢

什么时候可以选择本地配置?

  • 模块单一
  • 配置项集中
  • 运维简单

配置中心支持功能

  • 集中管控
    • 版本管理
    • 配置项管理
    • 操作审计
    • 权限控制
    • 多环境支持
  • 灰度发布:配置的灰度发布是配置中心比较重要的功能,当配置的变更影响比较大的时候,需要先在部分应用实例中验证配置的变更是否符合预期,然后再推送到所有应用实例
  • 热发布:可以在不重新编译代码的情况下,改变程序运行逻辑、调整边界值、被调用模块路由信息等等,用来方便维护,提高工作效率一种手段

配置中心选择CP OR AP

这篇文章服务注册与发现 — 选择 CP 还是 AP? 写的比较全面,也可以适用于配置中心

开源配置中心产品:Apollo

Apollo整体架构

在这里插入图片描述

  • Config Servicel :提供配置的读取、推送等功能
  • Admin Service:提供配置的修改、发布等功能
  • Portal:管理界面
    在这里插入图片描述
调用流程
  • ConfigService是一个独立的微服务,服务于Client进行配置获取。
  • Client和ConfigService保持长连接,通过一种拖拉结合(push & pull)的模式,实现配置实时更新的同时,保证配置更新不丢失。
  • AdminService是一个独立的微服务,服务于Portal进行配置管理。Portal通过调用AdminService进行配置管理和发布。
  • ConfigService和AdminService共享ConfigDB,ConfigDB中存放项目在某个环境的配置信息。* ConfigService/AdminService/ConfigDB三者在每个环境(DEV/FAT/UAT/PRO)中都要部署一份。
    Protal有一个独立的PortalDB,存放用户权限、项目和配置的元数据信息。Protal只需部署一份,它可以管理多套环境。
配置发布
  • ConfigService会定时扫描 DB 中的数据,客户端也会做长轮询+定时拉取Config Service 接口配置
    客户端与服务端使用长轮询方式保持一条连接,服务端此连接实现向客户端的通知推送
  • 服务端挂起请求的方式达到长连接的效果,实现消息实时推送
    • 客户端会发起一个Http请求到Config Service
    • Config Service 不会立即返回结果,而是把请求挂起。
    • 如果在60秒内没有该客户端关心的配置发布,向客户端返回304。
    • 如果有该客户端关心的配置发布,组装变更通知放入http返回数据中。

文档参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CoLiuRs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值