Apollo分布式配置中心 学习

本文介绍了Apollo,一个由携程研发的分布式配置中心,用于集中管理多环境、集群配置并支持实时推送。文章详细阐述了其解决了的问题、技术架构、功能界面操作以及如何集成到SpringBoot项目,包括多环境配置和灰度发布过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一  Apollo技术原理

1.1 什么是Apollo?

Apollo(阿波罗)是携程框架部门研发的分布式配置中心。

  • 能够集中化管理应用不同环境、不同集群的配置
  • 配置修改后能够实时推送到应用端(热部署)
  • 具备规范的权限设置
  • 服务端基于Spring Boot和Spring Cloud开发,安装文件是3个jar文件(apollo-configserver.jar、apollo-adminserver.jar、apollo-portal.jar,安装只需要java1.8环境)

1.2 解决了什么问题?

  • 微服务越来越多,项目部署的属性文件.proporties也越来越多,我们可以使用集中到一个应用中管理这些配置项
  • springboot项目的属性文件修改配置文件需要重启服务,Apollo则是实时刷新
  • 配置项可以做到不同环境,配置不同的值,灰度开关功能
  • Apollo可以查看配置文件历史修改记录

1.3 Apollo技术架构

简化架构图

详细架构图

1.4 其他一些分布式配置中心

1 2014年百度开源的Disconf配置管理中心,现在已经停止更新

2 2016年spring原生的spring-cloud-config项目,支持分布式远程配置中心,性能方面没有Apollo、Nacos优秀

3 2018年阿里开源的Nacos服务治理中心,支持服务注册和分布式配置管理,但是Nacos不支持权限管理和灰度发布

二  Apollo功能界面配置操作介绍

2.1 首页介绍

默认管理员登录账号/密码  apollo/admin

2.2 用户权限配置

添加/删除用户,首页点击【管理员工具】-【用户管理】添加用户

添加用户后,首页点击【管理员工具】-【系统权限菜单】可以给用户赋予创建项目权限和管理员权限:

2.3 新建项目

一般来讲,一个项目最好对应一个SpringBoot微服务,新建项目首页点击【创建项目】

然后提交,可以在项目首页右上角点击【授权】按钮,把项目访问权限可以授权给其他用户

然后选择授权用户即可,可以选择多个:

一个apollo项目在新建时,有个默认命名空间【application】,为了方便配置项过多,我们可以多新建一个命名空间来管理我们的配置项

  • mysql配置项
  • Redis配置项
  • MongoDB配置项
  • mybatis配置项
  • 文件目录配置项
  • 短信配置项
  • 等等

例如下图:

命名空间,可以分为

  1. 私有:无法共享给其他项目
  2. 共有:其他项目可以继承(共享)该项目内所有配置项

下图就是xk-common项目添加了其他项目的公共命名空间namespace,

这样就可以把所有公共的配置项放在一个项目中管理,达到复用的目的。


2.4 环境配置

apollo.portal.meta.servers 多环境地址配置

organizations 多个部门编辑

apollo.portal.envs 多环境名称管理

三  Apollo如何集成到我们的SpringBoot项目

集成到SpringBoot项目非常简单,就两步

第一步 添加MVN客户端包到pom.xml

<dependency>
     <groupId>com.ctrip.framework.apollo</groupId>
     <artifactId>apollo-client</artifactId>
     <version>1.3.0</version>
</dependency>

第二步 添加apollo配置项到springboot项目的application.properties文件

# apollo项目ID
app.id=xk-common
# apollo服务地址configService 如果有集群多个ip逗号分隔
apollo.meta=http://localhost:8080
# 开启apollo
apollo.bootstrap.enabled=true
# 饥饿加载模式
apollo.eagerLoad.enabled=true
# 命名空间
apollo.bootstrap.namespace=application,mysql

四  Apollo多环境配置以及灰度环境配置

4.1 Apollo多环境配置

首页点击【管理工具】【系统参数】输入apollo.portal.envs,点击查询:

输入apollo.portal.meta.servers,点击查询,配置每个环境对应的configService地址,环境名称大小写不敏感,不过最好统一。

4.2 Apollo灰度环境配置

每个项目的每个命名空间右上角都有一个【灰度】按钮

点击新增灰度配置:

新建灰度界面,上图有四个配置:

配置:就是你要准备发布灰度的配置项key-value

灰度规则:选择你要把配置项推送到的服务器IP。比如,生产有四台服务器,准备发布配置到其中一台,则只需要选择你要推送的IP地址即可,这样就达到了一部分机器先使用新配置。

灰度实例列表:保存的灰度环境的结果

更改历史:顾名思义,更改的历史记录

如下是灰度发布结果实例:

灰度发布,完成后,生产环境就有部分机器访问的是灰度配置,如果灰度发布一段时间后没有问题,可以点击【全量发布】,所有机器都使用该配置。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值