前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Apollo配置中心管理后台的详解

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

作者头像
BUG弄潮儿
发布2020-08-11 17:21:02
2.3K0
发布2020-08-11 17:21:02
举报
文章被收录于专栏:JAVA乐园

阅读文本大概需要3分钟。

上篇【Apollo配置中心源码编译及搭建】搭建了Apollo。这篇来看看怎么使用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

0x01:部门管理

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

添加部门

0x02:用户管理

添加用户

0x03:创建项目(应用)

创建项目

创建完成后

0x04:授权管理

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

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

0x05:删除项目

删除应用

集群和Namespace删除同理

0x06:创建token

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

Namespace授权

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

添加

发布

0x08:创建Namespace

创建Namespace

Namespace授权

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

代码语言:javascript
复制
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

返回数据:

代码语言:javascript
复制
{
    "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的参数规则说明:

所管理的配置环境

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

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

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

参考:https://www.cnblogs.com/dalianpai/p/12206079.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BUG弄潮儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档