专业的编程技术博客社区

网站首页 > 博客文章 正文

SpringCloud进阶-分布式配置中心Apollo介绍

baijin 2024-08-15 16:52:24 博客文章 9 ℃ 0 评论


Apollo简介

Apollo是携程架构部门研发的分布式的配置中心,它可以集中化的管理应用,可以在不同环境、不同集群、不同配置修改之后将配置及时的推送到每个应用端,并且它还具有一套规范化的权限、流程等管理体系,并且非常适合于微服务场景下的分布式配置管理。

其服务端是基于Spring Boot和Spring Cloud打造,打包之后可以直接运行,并且不需要安装额外的Web容器来进行支持。

Apoll核心功能介绍

一、统一管理不同环境、不同集群的配置

Apollo 提供了一个统一的界面,来进行集中式管理不同的环境、不同的集群、不同的名称空间等配置内容。

因为在实际开发中同一份代码有可能部署在不同的集群、有可能有不同的配置。例如一些注册中心的地址这些的。通过名称空间可以更加方便地支持到多个应用共享同一份配置文件的目的,同时它还支持应用对共享的配置进行覆盖,也就是说如果A应用修改了共享配置,B应用再次修改就会覆盖原来的配置。

二、配置的修改是热发布的

用户在Apollo上对客户端配置进行修改之后,客户端可以实时的收到最新的配置信息并且进行加载。所谓的热发布就是说修改配置之后不需要重新启动应用就可以读取到修改之后的配置文件。

三、发布版本管理

对于所有的Apollo管理的内容都有版本的概念,可以方便的支持各种版本的回退。

四、灰度发布

支持配置文件的灰度发布,例如在点击了发布按钮之后,只会对一部分应用生效,在等待观察一段时间之后才会对全部应用生效。

五、权限管理、发布管理、操作管理

在应用的配置管理方面有着全面的权限机制,对于配置的管理分为了编辑和发布两个操作过程,通过这两个操作过程可以确保不会出现操作失误。并且所有的操作都是有操作日志的存在,方便问题的追踪与回溯。

六、客户单配置监控

在客户端配置有监控,用来监控那些配置被使用了

七、提供Java与.Net的原生客户端配置

八、提供了开发平台的API

Apollo提供了比较完善的配置管理、权限控制等页面。但是处于对扩展性的考虑,Apollo也提供了很多开放式的API,可以支持通过开放接口对于配置的管理与调用。

九、部署简单

配置中心作为微服务基础服务,所以对于性能的要求比较高,也就需要Apollo尽量减少外部依赖的使用,从目前来看唯一的外部依赖就是对于MySQL的依赖。所以说部署使用都是非常简单的。可以使用脚本进行安装使用。

Apollo的核心概念

一、应用

应用也就是我们说的微服务的概念,Apollo客户端在运行的时候需要知道所有应用的标识,并且通过这些应用标识就可以知道哪个配置应该给予哪个应用。

二、环境

环境其实就是我们常说的开发环境、测试环境、生产环境等等。不同的环境下的配置也是不一样的,Apollo客户端在运行的时候除了要知道当前项目的身份标识,还需要知道当前项目运行的环境,这样可以在配置中心获取到对应环境的配置。

三、集群

在多个机房环境下,针对于每个机房我们都可以划分不同的集群,这些集群之间由于各种不同也会产生不一样的配置。针对于每个集群,他们所对应的配置也是不一样的。

四、名称空间

名称空间可以对配置进行进一步的分类,不同分类的配置可以放到不同的名称空间下面,例如关于数据库的配置,关于缓存的配置,关于基础消息的配置、关于不同业务的配置等等。

五、权限控制

通过权限控制来对不同的操作人员指定不同的操作,防止开发人员之间的误操作,或者是操作不谨慎导致的其他问题等等。

总结

到这里我们介绍了Apollo相关的基础概念以及核心功能点,从中我们知道,Apollo所做的事情就是一个集中式的配置中心的功能,它所解决的核心问题就是如何将所有场景下的配置进行一个集中式的管理。这个也是提升我们运维效率的一个核心问题。后续的文章中我们会讲到关于Apollo的使用以及其他的一些内容。希望大家多多关注。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表