Apollo配置中心组件讲解

Apollo配置中心有什么组件,组件有什么作用 ?

从编译出来的jar包展开来讲,或是说运行包来说,只有4个组件,分别是:

Portal

  1. 提供Web界面供用户管理配置
  2. 通过Meta Server获取Admin Service服务列表(IP+Port),通过IP+Port访问服务
  3. 在Portal侧做load balance、错误重试

Admin Service

  1. 提供配置管理接口
  2. 提供配置修改、发布等接口
  3. 接口服务对象为Portal

Config Service

  1. Config Service 包中包含了三个组件: config ,meta server,euraka
    a. Config 组件
    A. 提供配置获取接口
    B. 提供配置更新推送接口(基于Http long polling)
    i. 服务端使用Spring DeferredResult实现异步化,从而大大增加长连接数量
    ii. 目前使用的tomcat embed默认配置是最多10000个连接(可以调整),使用了4C8G的虚拟机实测可以支撑10000个连接,所以满足需求(一个应用实例只会发起一个长连接)。
    C. 接口服务对象为Apollo客户端

    b. Meta Server组件
    A. Portal通过域名访问Meta Server获取Admin Service服务列表(IP+Port)
    B. Client通过域名访问Meta Server获取Config Service服务列表(IP+Port)
    C. Meta Server从Eureka获取Config Service和Admin Service的服务信息,相当于是一个Eureka Client
    D. 增设一个Meta Server的角色主要是为了封装服务发现的细节,对Portal和Client而言,永远通过一个Http接口获取Admin Service和Config Service的服务信息,而不需要关心背后实际的服务注册和发现组件
    E. Meta Server只是一个逻辑角色,在部署时和Config Service是在一个JVM进程中的

    c. Eureka组件
    A. 基于Eureka和Spring Cloud Netflix提供服务注册和发现
    B. Config Service和Admin Service会向Eureka注册服务,并保持心跳
    C. 为了简单起见,目前Eureka在部署时和Config Service是在一个JVM进程中的(通过Spring Cloud Netflix)


Client

  1. Apollo提供的客户端程序,为应用提供配置获取、实时更新等功能
  2. 通过Meta Server获取Config Service服务列表(IP+Port),通过IP+Port访问服务
  3. 在Client侧做load balance、错误重试


如果从用户访问数据流的关系图,大概类似如下的结构:

基本机制流程如下:

  1. Config Service启动时候启动Config server,Meta server,Eureka三个服务 ,同时Config Server把自身注册到Eureka上面,并保持心跳。
  2. Admin Server 启动时,把自身注册到Eureka 上面,并保持心跳。
  3. Config Server,Admin Server都通过Meta Server连接Eureka,所以Meta Server相当于一个Eureka的客户端,提供功能接口。
  4. Portal 启动时候,通过Meta Server获取Admin Service 的列表(IP:PORT),同时通过软件实现LB,错误重试
  5. Client 客户端添加到开发项目中,项目启动后,客户端会通过Meta Server获取Config service的列表,并在客户端内部实现了LB,错误重试


如果理解了上面的组件以及数据流程,那么也应该明白如果要编译安装Apollo大概需要获得什么组件。参考上面的第一张图,那么编译后的Apollo组件应该有四个:Portal,Admin Service ,Config Server,Client 。

原文地址:http://blog.51cto.com/brucewang/2141843

时间: 2024-10-09 14:18:52

Apollo配置中心组件讲解的相关文章

Apollo配置中心介绍

1.What is Apollo 1.1 背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址-- 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境.分集群管理配置,完善的权限.审核机制-- 在这样的大环境下,传统的通过配置文件.数据库等方式已经越来越无法满足开发人员对配置管理的需求. Apollo配置中心应运而生! 1.2 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境.不同集群的

Docker部署Apollo配置中心

开始使用Docker部署Apollo配置中心之前,首先需要机器安装Docker环境本文使用Vresion: 2.0.0.0-mac81 (29211)测试部署,并使用以下镜像: mysql apollo-configservice apollo-adminsrevice apollo-portal 因为本文为纯部署目的,因此不在这里讲解Apollo的一些知识,如有需要可查看官方GitHub地址(https://github.com/ctripcorp/apollo). 上面提到的镜像除了Mysq

基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)

前言 前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候,每一步都踩着坑过来的.因此写文档与需要的朋友分享. 此篇文章不代表官方部署流程,只是自己的部署的实践方式,屏蔽了一些官方的多余的部署讲解.如果有问题还请到Apollo的wiki文档进行查看:https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D

(一)Apollo配置中心介绍

1.What is Apollo 1.1 背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址…… 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境.分集群管理配置,完善的权限.审核机制…… 在这样的大环境下,传统的通过配置文件.数据库等方式已经越来越无法满足开发人员对配置管理的需求. Apollo配置中心应运而生! 1.2 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境.不同集群的

Centos7中使用Docker部署Apollo配置中心

采用微服务开发框架开发项目时会涉及多个系统,如果要更改配置参数需要在多个系统间逐一更改,比较费时,而且容易遗漏,效率低下,次问题可以采用Apollo配置中心的方式解决,下面将介绍如何配置: 准备环境:本地环境win7/win10,docker所在服务器centos7 第一步 下载Apollo到本地并解压到磁盘,URL:https://github.com/ctripcorp/apollo (linux: wget https://github.com/ctripcorp/apollo/archi

Apollo配置中心动态刷新日志级别

Apollo配置中心动态刷新日志级别 添加次配置后,当在apollo上面调整日志级别不需要重启服务器,马上就能生效 /** * 结合apollo动态刷新日志级别 * @author: nj * @date: 2019/1/21:下午5:00 */ @Configuration public class LogListenerConfig { private static final Logger logger = LoggerFactory.getLogger(LoggerConfigurati

apollo 配置中心的安装与使用

请参考:https://blog.csdn.net/z960339491/article/details/80667559 一.简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景. 官方github:https://github.com/ctripcorp/apollo 作者对Apollo对介绍:https://github.com/ctripco

携程 Apollo 配置中心传统 .NET 项目集成实践

官方文档存在的问题 可能由于 Apollo 配置中心的客户端源码一直处于更新中,导致其相关文档有些跟不上节奏,部分文档写的不规范,很容易给做对接的新手朋友造成误导. 比如,我在参考如下两个文档使用传统 .NET 客户端做接入的时候就发现了些问题. ctripcorp/apollo - .Net客户端使用指南 ctripcorp/apollo.net - .Net客户端之与 System.Configuration.ConfigurationManager 集成 两个文档关于标识应用身份的AppI

kubernetes实战-配置中心(三)配置服务使用apollo配置中心

使用配置中心,需要开发对代码进行调整,将一些配置,通过变量的形式配置到apollo中,服务通过配置中心来获取具体的配置 在配置中心修改新增如下配置: 项目信息: 配置: 重新打包镜像,使用apollo版本的代码: 修改dp.yaml,将镜像使用我们刚刚打包的这个: 应用资源配置清单: # kubectl apply -f http://k8s-yaml.od.com/dubbo-server/dp.yaml 创建dubbo服务消费者: apollo中新建一个项目:dubbo-demo-web,新