使用 acm-server 包搭建本地的 ACM 服务器,即可在本地使用 ACM 提供的配置管理功能,还可以用来测试 ACM SDK。
背景信息
说明 ACM进入下线状态,所有配置管理相关的需求由MSE中的Nacos承接(ACM独享版,更好的安全和稳定性)。您需要在ACM控制台导出配置,然后在MSE控制台导入之前导出的配置即可完成迁移。具体操作,请参见
将应用配置从ACM迁移到MSE Nacos。
目前 ACM 本地服务器支持 Mac、Linux 和 Windows 平台,JDK 1.8 及以上版本。
ACM 本地服务器和 ACM 云服务器的功能对比如下。
对比项 |
ACM 云服务器 |
ACM 本地服务器 |
配置操作 |
支持 |
支持 |
历史版本 |
支持 |
不支持 |
监听查询 |
支持 |
不支持 |
推送轨迹 |
支持 |
不支持 |
命名空间 |
支持 |
不支持 |
在本地部署 ACM 服务器
- 下载 acm-server 包到本地。链接为 acm-server.tar.gz。
- 解压文件。
tar xzvf acm-server.tar.gz
当前目录下会生成 acm-server 目录。
- 进入 acm-server 目录,执行启动脚本,运行 acm-server。
cd acm-server/bin
sudo sh catalina.sh run
- 在浏览器地址栏输入 localhost:8080/diamond-server。
出现以上界面则说明 ACM 本地服务器已经部署成功。
创建配置
- 在配置管理页面单击新建配置。
- 输入配置的 Data ID、Group ID 和配置内容,并单击发布。
查询配置
- 在配置管理页面输入要查询的 Data ID 和 Group ID,单击查询。
说明 如果只输入 Data ID,则查询具有该 Data ID 的所有配置。如果不输入任何查询条件,则查询所有配置。
- 在查询结果列表的操作栏中,单击详情。
- 在配置内容文本框中查看配置内容。
修改配置
- 在查询结果列表的操作栏中,单击编辑。
- 在配置内容文本框中修改配置内容,并单击发布。
删除配置
- 在查询结果列表的操作栏中,单击删除。
- 在弹出对话框中单击确定。
ACM-SDK 测试
- 绑定 acm.aliyun.com 域名。
由于 ACM-SDK 默认使用 acm.aliyun.com 域名连接 ACM 服务器,为了将 ACM-SDK 连接到本地 ACM 服务器,需要将 acm.aliyun.com
域名绑定到本地 IP
127.0.0.1。
在 /etc/hosts 文件中添加 127.0.0.1 acm.aliyun.com
。
- 编写 ACM-SDK 测试用例。
ACM-SDK 中填入创建的配置
dataId 和
group,如果能成功获取配置,则说明 ACM 本地测试环境部署成功。
public class ACMTest {
public static void main(String[] args) throws ConfigException, InterruptedException {
// 初始化配置服务,控制台通过示例代码自动获取下面参数。入参分别为endpoint,namespace,accessKey,secretKey(为 ACM 专用密钥,不能用阿里云产品的通用密钥)。
ConfigService.init("acm.aliyun.com", "", "", "");
String content = ConfigService.getConfig("acm.test", "DEFAULT_GROUP", 6000);
System.out.println(content);
// 初始化的时候,给配置添加监听,配置变更会回调通知
ConfigService.addListener("acm.test", "DEFAULT_GROUP", new ConfigChangeListener() {
public void receiveConfigInfo(String configInfo) {
// 当配置更新后,通过该回调函数将变更内容列出。
// 注意回调函数中不要做阻塞操作,否则阻塞通知线程。
System.out.println(configInfo);
}
});
// 防止主线程 sleep
Thread.sleep(100000);
}
}