全部產品
Search
文件中心

Application Configuration Management(Deprecated):在本地搭建 ACM 伺服器

更新時間:Jul 06, 2024

使用 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 伺服器

  1. 下載 acm-server 包到本地。連結為 acm-server.tar.gz
  2. 解壓檔案。
    tar xzvf acm-server.tar.gz
    目前的目錄下會產生 acm-server 目錄。
  3. 進入 acm-server 目錄,執行啟動指令碼,運行 acm-server。
    cd acm-server/bin
    sudo sh catalina.sh run
  4. 在瀏覽器地址欄輸入 localhost:8080/diamond-server
    acm local server
    出現以上介面則說明 ACM 本機伺服器已經部署成功。

建立配置

  1. 組態管理頁面單擊建立配置
    local new conf
  2. 輸入配置的 Data IDGroup ID配置內容,並單擊發布
    Local new conf

查詢配置

  1. 組態管理頁面輸入要查詢的 Data IDGroup ID,單擊查詢
    說明 如果只輸入 Data ID,則查詢具有該 Data ID 的所有配置。如果不輸入任何查詢條件,則查詢所有配置。
  2. 在查詢結果清單的操作欄中,單擊詳情
    local query conf
  3. 配置內容文字框中查看配置內容。

修改配置

  1. 在查詢結果清單的操作欄中,單擊編輯
    local edit conf
  2. 配置內容文字框中修改配置內容,並單擊發布

刪除配置

  1. 在查詢結果清單的操作欄中,單擊刪除
    local delete conf
  2. 在彈出對話方塊中單擊確定

ACM-SDK 測試

  1. 綁定 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

  2. 編寫 ACM-SDK 測試案例。
    ACM-SDK 中填入建立的配置 dataIdgroup,如果能成功擷取配置,則說明 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);
     }
    }