分布式配置中心之Apollo

一、Apollo简介

  Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

 上图来自官网

架构剖析

四个核心模块及其主要功能

  1. ConfigService

    • 提供配置获取接口(Apollo客户端)

    • 提供配置推送接口(AdminService

  2. AdminService

    • 提供配置的crud接口(Portal)

  3. Client

    • 为应用获取配置,支持实时更新(portal->adminService->configService->client,推拉结合)

  4. Portal

    • 为用户提供配置管理界面

三个辅助服务发现模块

  1. Eureka

    • 用于服务发现和注册

    • Config/AdminService注册实例并定期报心跳

    • 和ConfigService住在一起部署

  2. MetaServer(为多语言平台设计)

    • Portal通过域名访问MetaServer获取AdminService的地址列表

    • Client通过域名访问MetaServer获取ConfigService的地址列表

    • 相当于一个Eureka Proxy

    • 逻辑角色,和ConfigService住在一起部署

  3. NginxLB为多语言平台设计

    • 和域名系统配合,协助Portal访问MetaServer获取AdminService地址列表

    • 和域名系统配合,协助Client访问MetaServer获取ConfigService地址列表

    • 和域名系统配合,协助用户访问Portal进行配置管理

通过上图以及上面的分析,我们可以发现其实apollo是一个微服务架构,其中四大核心模块中有三个模块是配置的管理同步的服务,而client是我们具体使用框架的服务

Apollo的核心概念

  1. application (应用):就是实际使用配置的应用,Apollo客户端在运行时需要知道当前应用是谁,从而可以去获取对应的配置每个应用都需要有唯一的身份标识appId,我们认为应用身份是跟着代码走的,所以需要在代码中配置
  2. environment (环境):Apollo客户端在运行时需要知道当前应用处于哪个环境,从而可以去获取应用的配置,可以配置多个环境
  3. cluster (集群):相当于分组
  4. namespace (命名空间):相当于具体的配置文件
原文地址:https://www.cnblogs.com/qsky/p/13932973.html