zoukankan      html  css  js  c++  java
  • Apollo简介及工作原理

    一、Apollo简介

      1、Apollo是携程框架部门研发的分布式配置中心
      2、集中化管理应用的不同环境和不同集群的配置
      3、配置修改后能够实时推送到应用端
      4、具备规范的权限、流程治理等特性

    二、Apollo组成部分

      Apollo包括服务端和客户端

      服务端:基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器
      java客户端:不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持

    三、Apollo特性

      1、同意管理不同环境、不同集群的配置
      2、配置修改实时生效(热发布)
      3、版本发布管理--所有配置都有版本概念,便于配置的回滚
      4、灰度发布--点了发布后只对部分应用实例生效,等观察一段时没问题后再推送给所有应用实例
      5、权限管理、发布审核、操作审计
        权限管理--有完善的权限管理
        发布审核--配置管理分了编辑发布两个环节,减少人为错误
        操作审计--所有操作都有审计日志,可以方便追踪问题
      6、客户端配置信息监控--可以在界面上方便看到配置在被那些实例使用
      7、提供java和.net原生客户端,方便应用集成
      8、提供了http接口,非java和.net应用也可以方便地使用
      9、提供开放平套API
      10、部署非常简单,只要安装好Java和MySQL就可以让Apollo跑起来

    四、执行流程

      1、用户在配置中心对配置进行修改并发布
      2、配置中心通知Apollo客户端有配置更新
      3、Apollo客户端从配置中心拉取最新的配置、更新本地配置并通知到应用

    五、工作原理

    上图简要描述了Apollo的总体设计,我们可以从下往上看:
    1、Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端
    2、Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)
    3、Config Service和Admin Service都是多实例、无状态部署,所以需要将自己注册到Eureka中并保持心跳
    4、在Eureka之上我们架了一层Meta Server用于封装Eureka的服务发现接口
    5、Client通过域名访问Meta Server获取Config Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Client侧会做load balance、错误重试
    6、Portal通过域名访问Meta Server获取Admin Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Portal侧会做load balance、错误重试
    7、为了简化部署,我们实际上会把Config Service、Eureka和Meta Server三个逻辑角色部署在同一个JVM进程中

  • 相关阅读:
    复杂系统架构设计<1>
    DevExpress Applications<3>
    DevExpress Skins<2>
    DevExpress MVVM<1>
    Unity容器<1>
    spring cloud微服务快速教程之(九) Spring Cloud Alibaba--sentinel-限流、熔断降级
    spring cloud微服务快速教程之(八) Spring Cloud Alibaba--nacos(二)、配置中心
    spring cloud微服务快速教程之(七) Spring Cloud Alibaba--nacos(一)、服务注册发现
    小白的springboot之路(十五)、mybatis的PageHelper分页插件使用
    spring cloud微服务快速教程之(六) 应用监控 spring boot admin
  • 原文地址:https://www.cnblogs.com/puti306/p/11787220.html
Copyright © 2011-2022 走看看