配置中心--阿里云ACM使用记录

ACM基础用法入门


传统架构中的配置管理


(目前,我们正在使用)

 配置中心--阿里云ACM使用记录


ACM 配置管理中心


配置中心--阿里云ACM使用记录

 

应用配置管理(Application Configuration Management,简称 ACM


阿里云提供的一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品。


ACM 是分布式系统的配置中心。通过提供配置变更、配置推送、历史版本管理、灰度发布、配置变更审计等配置管理工具。


ACM 的配置管理场景下,您只需要在 ACM 控制台上更改配置,配置信息会自动被推送到各个服务器中并在秒级延迟内生效。


技术架构


 配置中心--阿里云ACM使用记录



主要有三个角色:


ACM控制台

用于配置管理


ACM 服务端

ACM 分布式服务节点,每一个节点包括以下部分:

服务协议层:用于进行协议转换,鉴权验证等。

一致性管理层:用于配置的一致性管理和配置推送。

配置缓存层:通过分布式缓存提高配置查询和推送效率。

存储层:后台是一个分布式存储,用于存放配置,并具备高性能和高扩展性。

控制台:ACM 控制台,用于配置管理。



ACM 客户端

客户端基于 RESTful API 设计。ACM 提供 Java Native API 以及基于 Spring Cloud Config 的配置读取接口,方便您进行便捷开发。

在某些场景下,ACM 提供 Agent 来动态替换宿主机器上的配置文件。此时 ACM 配置项和配置文件对应关系需手动指定。


名词解释


配置

在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。


配置管理

在数据中心中,系统中所有配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动统称为配置管理。


配置推送

配置管理中,常需要配置管理系统将配置的变更分发到相关的系统,从分发到配置生效的过程称为配置推送。


推送轨迹

从配置变更,配置推送到配置生效过程的整个轨迹称为推送轨迹。通过查看某个配置的推送轨迹,我们可以获知一个配置变更在哪些应用上,哪些机器上,在哪个时间点生效,产生了哪些影响等。


配置监听

配置监听,是指 ACM 允许系统通过使用 SDK 等方式向 ACM 系统注册监听器(Listener),从而监听并消费该配置的变更。


Data ID (配置 ID

ACM 中代表配置集的 ID, 是配置组织的维度之一。一般通过 Data ID 来组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集可以用有意义的名称来标识这个配置集。Data ID 通常采用类 Java 包命名方式(如com.taobao.tc.refund.log.level)的命名规则保证全局唯一性,此命名规则非强制。


Group (配置分组)

ACM 中配置集的分组,是配置组织的维度之一。通常使用一个有意义的字符串来分组配置集,例如 BuyTrade 等,用以区分相同 Data ID 的配置集。ACM 创建配置时,如果用户未填 Group 名字,则默认用 DEFAULT_GROUP 代替。Group 的常用场景是同一个配置类型用于不同应用或者组件,如 database_url 配置,MQ_topic 配置等。


Namespace(命名空间)

ACM 中的命名空间,用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 GroupData ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,如开发测试环境和生产环境的配置隔离等。


配置快照

ACM 客户端 SDK 会在本地生成配置的快照。当客户端无法连接到 ACM Server 时,可以利用快照提示系统的整体容灾能力。配置快照类似于 Git 中的本地 commit 的概念,也类似缓存,会在适当的时机更新,但是没有缓存过期(expire)的概念。

 


配置中心--阿里云ACM使用记录



ACM 不是 CP 类应用,因此和 ETCDZK 定位不同,ACM 并不适合用于严格的事务类配置服务,如分布式锁等。

操作实践(用Node.js演示)

1.安装 ACM Node.js 版客户端

输入以下命令安装客户端:npm i acm-client --save

2.选择地域

用户机器在哪个地域,配置就发到哪个地域。如果配置分布在多个地域中,那么需要将配置发到对应的各个地域中。


3.创建配置

ACM 中一个配置的数据模型是 < Namespace+DataId+Group, Content > DataId Group 不需要申请,在一个命名空间内保持唯一性即可。


4.管理配置

增删改查

对于重要的配置变更,一个变更错误可能导致巨大故障,因此需要将该配置发到几台机器上先验证一下。如果没有问题再全部推送,降低错误变更影响。

勾选 Beta 发布单选框,填写需要 Beta 发布的机器 IP (本机测试注意填写公网 IP)


5.管理配置版本

如果改错配置,需要立即回滚解决。ACM 提供了配置变更历史查询和回滚功能。


6.查看监听状态


7.查询推送轨迹


8.管理命名空间

当正式环境、测试环境需要不同的配置值的时候,需要创建命名空间来隔离不同环境中的配置。多个产品线间数据需要隔离的时候,也可以给每个产品线分配一个命名空间。


9.创建和使用加密配置


10.权限控制



阿里云 AccessKey ACM 专用 AccessKey 的区别