您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

Apollo配置中心管理后台的详解

时间:2020-08-10 12:24:23  来源:  作者:

Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。Apollo架构模块图:

Apollo配置中心管理后台的详解

 

来源:网络

各模块职责

  • Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端
  • Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)
  • Eureka提供服务注册和发现,目前Eureka在部署时和Config Service是在一个JVM进程中的
  • Config Service和Admin Service都是多实例、无状态部署,所以需要将自己注册到Eureka中并保持心跳
  • 在Eureka之上架了一层Meta Server用于封装Eureka的服务发现接口
  • Client通过域名访问Meta Server获取Config Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Client侧会做load balance、错误重试
  • Portal通过域名访问Meta Server获取Admin Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Portal侧会做load balance、错误重试

为了简化部署实际上会把Config Service、Eureka和Meta Server三个逻辑角色部署在同一个JVM进程中

分步执行流程

  • Apollo启动后,Config Service和Admin Service会自动注册到Eureka服务注册中心,并定期发送保活心跳。
  • Apollo Client和Portal管理端通过配置的Meta Server的域名地址经由Software Load Balancer(软件负载均衡器)进行负载均衡后分配到某一个Meta Server
  • Meta Server从Eureka获取Config Service和Admin Service的服务信息,相当于是一个Eureka Client
  • Meta Server获取Config Service和Admin Service(IP+Port)失败后会进行重试
  • 获取到正确的Config Service和Admin Service的服务信息后,Apollo Client通过Config Service为应用提供配置获取、实时更新等功能;Apollo Portal管理端通过Admin Service提供配置新增、修改、发布等功能

核心概念

  • Application (应用):就是实际使用配置的应用,Apollo客户端在运行时需要知道当前应用是谁,从而可以去获取对应的配置
    关键字:appId
  • environment (环境):配置对应的环境,Apollo客户端在运行时需要知道当前应用处于哪个环境,从而可以去获取应用的配置
    关键字:env
  • cluster (集群):一个应用下不同实例的分组,比如典型的可以按照数据中心分,把上海机房的应用实例分为一个集群,把北京机房的应用实例分为另一个集群。
    关键字:cluster
  • namespace (命名空间): 一个应用下不同配置的分组,可以简单地把namespace类比为文件,不同类型的配置存放在不同的文件中,如数据库配置文件,RPC配置文件,应用自身的配置文件等
    关键字:namespaces
Apollo配置中心管理后台的详解

 

0x01:部门管理

Apollo 默认部门提供两个,如需要增加部门,可在系统参数中修改

Apollo配置中心管理后台的详解

 

添加部门

Apollo配置中心管理后台的详解

 

0x02:用户管理

Apollo配置中心管理后台的详解

 

添加用户

Apollo配置中心管理后台的详解

 

0x03:创建项目(应用)

Apollo配置中心管理后台的详解

 

创建项目

Apollo配置中心管理后台的详解

 

创建完成后

Apollo配置中心管理后台的详解

 

0x04:授权管理

Apollo配置中心管理后台的详解

 

赋予用户huangjj管理payservice服务的权限

Apollo配置中心管理后台的详解

 

这样huangjj用户登录就可以看到payservice应用了。

0x05:删除项目

Apollo配置中心管理后台的详解

 

删除应用

Apollo配置中心管理后台的详解

 

集群和Namespace删除同理

0x06:创建token

Apollo配置中心管理后台的详解

 

输入相关参数,点击创建就

Apollo配置中心管理后台的详解

 

Namespace授权

Apollo配置中心管理后台的详解

 

0x07:添加配置和发布配置

Apollo配置中心管理后台的详解

 

添加

Apollo配置中心管理后台的详解

 

发布

Apollo配置中心管理后台的详解

 

0x08:创建Namespace

Apollo配置中心管理后台的详解

 

创建Namespace

Apollo配置中心管理后台的详解

 

Namespace授权

Apollo配置中心管理后台的详解

 

0x08:获取集群下所有Namespace信息接口

curl -H 'Authorization:748aba21fa6717c5ac6210e82d32f05d9a7c61d6'  
        -H 'Content-Type:application/json;charset=UTF-8'  
        http://127.0.0.1:8070/openapi/v1/envs/dev/apps/payservice/clusters/default/namespaces/application
Apollo配置中心管理后台的详解

 

返回数据:

{
    "appId": "payservice",
    "clusterName": "default",
    "namespaceName": "application",
    "comment": "default app namespace",
    "format": "properties",
    "isPublic": false,
    "items": [
        {
            "key": "rule.count",
            "value": "100",
            "comment": "",
            "dataChangeCreatedBy": "apollo",
            "dataChangeLastModifiedBy": "apollo",
            "dataChangeCreatedTime": "2020-08-08T09:37:13.000+0800",
            "dataChangeLastModifiedTime": "2020-08-08T09:37:13.000+0800"
        },
        {
            "key": "port",
            "value": "9009",
            "comment": "",
            "dataChangeCreatedBy": "apollo",
            "dataChangeLastModifiedBy": "apollo",
            "dataChangeCreatedTime": "2020-08-08T09:37:13.000+0800",
            "dataChangeLastModifiedTime": "2020-08-08T09:37:13.000+0800"
        }
    ],
    "dataChangeCreatedBy": "apollo",
    "dataChangeLastModifiedBy": "apollo",
    "dataChangeCreatedTime": "2020-08-08T09:18:59.000+0800",
    "dataChangeLastModifiedTime": "2020-08-08T09:18:59.000+0800"
}

结构url的参数规则说明:

env所管理的配置环境appId所管理的配置AppIdclusterName所管理的配置集群名, 一般情况下传入 default 即可。如果是特殊集群,传入相应集群的名称即可namespaceName所管理的Namespace的名称,如果是非properties格式,需要加上后缀名,如sample.yml

详细参考:https://github.com/ctripcorp/apollo/wiki/Apollo开放平台

另外也可以通过JAVAAPI的方式获取配置

详细参考:https://github.com/ctripcorp/apollo/wiki/Java客户端使用指南


Tags:Apollo   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言在前一篇文章中简单地介绍了《5分钟通过docker快速部署并使用apollo配置中心》,用户可以快速地了解到配置中心apollo的基本使用,如需要看上文的可以看如下链接:https://www...【详细内容】
2021-01-11  Tags: Apollo  点击:(161)  评论:(0)  加入收藏
思维导图 文章已收录Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary一、概述Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同...【详细内容】
2020-10-20  Tags: Apollo  点击:(56)  评论:(0)  加入收藏
Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。Apol...【详细内容】
2020-08-10  Tags: Apollo  点击:(200)  评论:(0)  加入收藏
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微...【详细内容】
2020-08-02  Tags: Apollo  点击:(40)  评论:(0)  加入收藏
日前,百度发布2020年第一季度未经审计的财务报告。财报显示:第一季度百度营收225亿元,净利润31亿元,同比增长219%。作为百度AI的战略重点,本季度Apollo自动驾驶影响力持续上升,智...【详细内容】
2020-05-19  Tags: Apollo  点击:(53)  评论:(0)  加入收藏
交通是兴国之要、强国之基。到 2035 年,我国将基本建成交通强国,形成“安全、便捷、高效、绿色、经济”的现代化综合交通运输体系,基础设施布局完善、立体互联,交通装备先进适用...【详细内容】
2020-04-13  Tags: Apollo  点击:(92)  评论:(0)  加入收藏
据了解,此次百度Apollo将参与建设的是阳泉市经济开发区双向约10公里的车路协同测试示范区,据悉该项目将完成对路侧系统的建设,其中包括了智能化改造点位的感知、传输、边缘...【详细内容】
2020-03-25  Tags: Apollo  点击:(82)  评论:(0)  加入收藏
▌简易百科推荐
近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇 Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了...【详细内容】
2021-12-23  Python阿杰    Tags:FastAPI   点击:(6)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  java老人头    Tags:框架   点击:(11)  评论:(0)  加入收藏
今天来梳理下 Spring 的整体脉络啦,为后面的文章做个铺垫~后面几篇文章应该会讲讲这些内容啦 Spring AOP 插件 (了好久都忘了 ) 分享下 4ye 在项目中利用 AOP + MybatisPlus 对...【详细内容】
2021-12-07  Java4ye    Tags:Spring   点击:(14)  评论:(0)  加入收藏
&emsp;前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用...【详细内容】
2021-12-06  波哥带你学Java    Tags:SpringSecurity   点击:(18)  评论:(0)  加入收藏
React 简介 React 基本使用<div id="test"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js...【详细内容】
2021-11-30  清闲的帆船先生    Tags:框架   点击:(19)  评论:(0)  加入收藏
流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术。本文主要介绍了诞生于云原生时代的流水线框架 Argo。 什么是流水线?在计算机...【详细内容】
2021-11-30  叼着猫的鱼    Tags:框架   点击:(21)  评论:(0)  加入收藏
TKinterThinter 是标准的python包,你可以在linx,macos,windows上使用它,你不需要安装它,因为它是python自带的扩展包。 它采用TCL的控制接口,你可以非常方便地写出图形界面,如...【详细内容】
2021-11-30    梦回故里归来  Tags:框架   点击:(26)  评论:(0)  加入收藏
前言项目中的配置文件会有密码的存在,例如数据库的密码、邮箱的密码、FTP的密码等。配置的密码以明文的方式暴露,并不是一种安全的方式,特别是大型项目的生产环境中,因为配置文...【详细内容】
2021-11-17  充满元气的java爱好者  博客园  Tags:SpringBoot   点击:(25)  评论:(0)  加入收藏
一、搭建环境1、创建数据库表和表结构create table account(id INT identity(1,1) primary key,name varchar(20),[money] DECIMAL2、创建maven的工程SSM,在pom.xml文件引入...【详细内容】
2021-11-11  AT小白在线中  搜狐号  Tags:开发框架   点击:(29)  评论:(0)  加入收藏
SpringBoot开发的物联网通信平台系统项目功能模块 功能 说明 MQTT 1.SSL支持 2.集群化部署时暂不支持retain&will类型消 UDP ...【详细内容】
2021-11-05  小程序建站    Tags:SpringBoot   点击:(55)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条