• 分布式配置中心之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 (命名空间):相当于具体的配置文件
  • 相关阅读:
    RAC连接时的2种方式Connect Time Failver和taf
    ElasticSearch Root身份运行
    sql in按照指定顺序排序
    JAVA字符串格式化-String.format()的使用
    java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cookie
    全文搜索引擎 Elasticsearch 入门教程
    监控页面后退前进,浏览器文档加载事件之pageshow、pagehide
    ios 上浏览器返回上一页不会刷新页面问题,页面初始化的方法不执行
    SQL之case when then用法
    MySQL表的四种分区类型
  • 原文地址:https://www.cnblogs.com/qsky/p/13932973.html
Copyright © 2020-2023  润新知