apollo

Apollo 配置中心使用总结(差集群)、参数覆盖、本地独立配置

2021-10-29  本文已影响0人  virtual灬zzZ

apollo官网提供的演示环境

演示环境(Demo):

创建项目

如图,我们可以在上面根据自身的需求创建应用,每个应用都有一个默认的namespace,叫application,在后续会讲到。

namespace

Namespace是配置项的集合,类似于一个配置文件的概念。

Apollo在创建项目的时候,都会默认创建一个“application”的Namespace。顾名思义,“application”是给应用自身使用的,熟悉Spring Boot的同学都知道,Spring Boot项目都有一个默认配置文件application.yml。在这里application.properties就等同于“application”的Namespace。对于90%的应用来说,“application”的Namespace已经满足日常配置使用场景了。

namespace有私有和共有之分,还有一种是关联,公有对于所有的项目都是可以使用的,私有就是只能自己使用,关联用于覆盖又可称为继承类型,关联类型具有private权限。

关联类型的Namespace继承于公共类型的Namespace,用于覆盖公共Namespace的某些配置。例如公共的Namespace有两个配置项

k1 = v1
k2 = v2

然后应用A有一个关联类型的Namespace关联了此公共Namespace,且覆盖了配置项k1,新值为v3。那么在应用A实际运行时,获取到的公共Namespace的配置为:

k1 = v3
k2 = v2

图中FAT 、UAT这些,就是不同的环境,可以使用不同的机器去安装config+admin,portal只要一份并在上面配置好各个环境的地址,它会自动寻找并呈现在UI上面。

同步配置

这个功能非常方便,可以点击之后选择配置,同步到另一个环境,之后发布即可。


关于配置属性参数

由上图可知,有时太多属性参数需要配置,不可能一个一个按表格填入,这里选择文本就行,但是文本都是properties的格式的,如果我们使用yml格式,可以去到该网站https://www.toyaml.com/index.html去转换,再粘贴上去,发布即可。

关于参数覆盖和本地开发的问题

apollo上配置一份数据,如果本地application也配置了一份,其实是apollo的会覆盖本地的,apollo本地缓存一份也可见,如apollo配置中心一致。

如果某参数,在本地有,在apollo没有,这时就会用本地的。如果开发过程中需要用到自己的配置,而不是apollo的(怕影响其他开发),可以使用官网说的这种方法。
https://www.apolloconfig.com/#/zh/usage/java-sdk-user-guide?id=%e4%ba%94%e3%80%81%e6%9c%ac%e5%9c%b0%e5%bc%80%e5%8f%91%e6%a8%a1%e5%bc%8f

关于回滚

回滚已发布配置

如果发现已发布的配置有问题,可以通过点击『回滚』按钮来将客户端读取到的配置回滚到上一个发布版本。

这里的回滚机制类似于发布系统,发布系统中的回滚操作是将部署到机器上的安装包回滚到上一个部署的版本,但代码仓库中的代码是不会回滚的,从而开发可以在修复代码后重新发布。

Apollo中的回滚也是类似的机制,点击回滚后是将发布到客户端的配置回滚到上一个已发布版本,也就是说客户端读取到的配置会恢复到上一个版本,但页面上编辑状态的配置是不会回滚的,从而开发可以在修复配置后重新发布。

上一篇 下一篇

猜你喜欢

热点阅读