• 分布式配置中心之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 (命名空间):相当于具体的配置文件
  • 相关阅读:
    No result defined for action
    敏捷管理视频
    如何预测一个互联网产品的未来:一套关于产品的数学模型
    ZooKeeper 笔记(3) 实战应用之【统一配置管理】
    mybatis migrate常用指令
    dubbo远程调试运行
    解决 nginx https反向代理http协议 302重定向localtion到http问题
    nginx设置不使用缓存 add_header Cache-Control no-cache
    openssl数字证书私钥删除私钥密码
    读 Zepto 源码系列
  • 原文地址:https://www.cnblogs.com/qsky/p/13932973.html
Copyright © 2020-2023  润新知