首页 > 其他分享 >Apollo配置中心管理后台的详解

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

时间:2023-06-02 21:04:26浏览次数:47  
标签:Service Admin 配置 Eureka 详解 后台 Apollo Config


上篇【Apollo配置中心源码编译及搭建】搭建了Apollo。这篇来看看怎么使用Apollo管理后台。

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

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

 来源:网络

 各模块职责

  • 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配置中心管理后台的详解_Server_02

 0x01:部门管理

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

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

添加部门

Apollo配置中心管理后台的详解_客户端_04

 

0x02:用户管理

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

添加用户

Apollo配置中心管理后台的详解_客户端_06

0x03:创建项目(应用)

Apollo配置中心管理后台的详解_客户端_07

创建项目

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

创建完成后

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

0x04:授权管理

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

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

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

 

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

 

0x05:删除项目

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

删除应用

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

集群和Namespace删除同理

 

0x06:创建token

Apollo配置中心管理后台的详解_客户端_14

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

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

Namespace授权

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

 

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

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

添加

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

发布

Apollo配置中心管理后台的详解_客户端_19

0x08:创建Namespace

Apollo配置中心管理后台的详解_客户端_20

创建Namespace

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

Namespace授权

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

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配置中心管理后台的详解_Server_23

返回数据:

{
    "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

所管理的配置AppId

clusterName

所管理的配置集群名, 一般情况下传入 default 即可。如果是特殊集群,传入相应集群的名称即可

namespaceName

所管理的Namespace的名称,如果是非properties格式,需要加上后缀名,如sample.yml

 

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

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

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

 


标签:Service,Admin,配置,Eureka,详解,后台,Apollo,Config
From: https://blog.51cto.com/u_13538361/6404931

相关文章

  • Sentinel整合Apollo进行规则持久化(二)
      【Sentinel整合Apollo进行规则持久化】对Sentinel的代码进行了改造,【Apollo配置中心管理后台的详解】对Apollo管理后台进行了讲解。今天就最终实现:Sentinel整合Apollo进行规则持久化 0x01:先把Apollo配置中心启动主要启动如下三个服务:apollo-configservice:提供配置获取接口,提供......
  • 2014.4.25.12.51_context_2014.4.25_Android种的Context详解
    Android中Context详解----你所不知道的Context一、Context相关类的继承关系2二、什么时候创建Context实例5从上可知一下三点,即:1、它描述的是一个应用程序环境的信息,即上下文。2、该类是一个抽象(abstractclass)类,Android提供了该抽象类的具体实现类(后面我们会讲到是Co......
  • IOS上架流程详解,包含审核避坑指南!
    ​准备开发者账号完工的项目上架步骤一、创建AppID二、创建证书请求文件(CSR文件)三、创建发布证书(CER)四、创建ProvisioningProfiles配置文件(PP文件)五、在AppStore创建应用六、打包上架一、创建AppID1.打开苹果开发者网,点击“Account”登录会员中心 ​......
  • IOS上架流程详解,包含审核避坑指南!
    ​准备开发者账号完工的项目上架步骤一、创建AppID二、创建证书请求文件(CSR文件)三、创建发布证书(CER)四、创建ProvisioningProfiles配置文件(PP文件)五、在AppStore创建应用六、打包上架一、创建AppID1.打开苹果开发者网,点击“Account”登录会员中心 ​......
  • 详解Oracle用户解锁命令的两则实现方法
    在安装完Oracle10g之后,想打开sql*plus来学习,然后按照书上的步骤用scott用户来连接数据库,可输了好几次都提示一个错误。error:theaccountislocked然后上网查了一下之后发现这个用户被锁定了,至于它为什么被锁定,可能是下面几个原因。1.尝试多次登录未成功.(可能密码不正确)2.此用......
  • Docker网络详解
    文章目录一、理解docker0网桥二、Docker网络模式三、Docker容器互联四、自定义网络一、理解docker0网桥安装docker的时候,会生成一个docker0的虚拟网桥。每运行一个docker容器都会生成一个veth设备对,这个veth一个接口在容器里,一个接口在物理机上安装网桥管理工具:yuminstallbridg......
  • Docker资源配额详解
    文章目录一、针对CPU限制二、针对内存限制三、针对磁盘限制四、stress压测工具Docker通过cgroup来控制容器使用的资源限制,可以对docker限制的资源包括CPU、内存、磁盘一、针对CPU限制Docker容器针对CPU限制包括--cpu-shares、--cpuset-cpus参数。–cpu-shares:CPU使用份额控制......
  • 设计模式详解之抽象工厂模式--企业的运行模式
    前言本文主要讲述设计模式中的抽象工厂模式,文中使用通俗易懂的案例,使你更好的学习本章知识点并理解原理,做到有道无术。一.什么是抽象工厂模式抽象工厂是23种设计模式中创建型模式的一种,抽象工厂是由多个工厂组合而成。上一章我们提到的工厂模式只存在一个抽象角色,而抽象工厂是......
  • java爬虫详解及简单实例
    java爬虫是一种自动化程序,可以模拟人类在互联网上的行为,从网站上抓取数据并进行处理。下面是Java爬虫的详细解释:1、爬虫的基本原理Java爬虫的基本原理是通过HTTP协议模拟浏览器发送请求,获取网页的HTML代码,然后解析HTML代码,提取需要的数据。爬虫的核心是HTTP请求和HTML解析。2......
  • 视频美颜sdk是什么?技术解析与实现原理详解
    视频美颜技术的发展则为人们提供了一种美化自己的方式,因此,视频美颜技术成为了一个备受关注的领域。在这个领域中,视频美颜sdk技术则是实现高效美颜的关键因素之一。本文将从技术角度分析视频美颜sdk的实现原理和优势。一、视频美颜技术的概述视频美颜技术是一种基于计算机视觉和图像......