全部產品
Search
文件中心

Serverless App Engine:使用自建Nacos服務註冊中心

更新時間:Feb 22, 2025

本地開發的Spring Cloud應用或者Dubbo應用託管到SAE時,您可以使用SAE的註冊中心,也可以自建Nacos提供服務註冊與發現功能。本文介紹如何通過SAE控制台為應用配置Nacos服務註冊與發現功能。

前提條件

  • 已安裝yum命令。

  • 執行應用程式前,確保Nacos註冊中心的訪問連接埠(例如8848)已添加至安全性群組。具體操作,請參見添加安全性群組規則

使用推薦

當您的微服務應用較多時,註冊中心按推薦程度由高到低依次排序如下:

  • 商業版的服務註冊中心(MSE)

  • 自建服務註冊中心

  • SAE內建服務註冊中心

步驟一:配置Nacos

Nacos依賴Java環境運行。如果您是從代碼開始構建並運行Nacos,還需要為Nacos配置Maven環境。Nacos安裝啟動後,提供了服務註冊發現功能,需要在應用側指定服務註冊中心。應用程式執行後,系統會依據所設的服務註冊中心,自動進行服務註冊與發現。

具體操作,請參見Nacos快速開始

步驟二:在SAE側佈建服務註冊發現功能

本文只介紹關鍵步驟。建立應用的具體步驟,請參見Java應用

  1. 情境不同,對應的操作入口也有所差異:

    建立應用

    1. 登入SAE控制台,在左側導覽列選擇應用管理 > 應用列表,然後選擇目標地區和目標命名空間,最後單擊建立應用

    2. 應用基本資料嚮導頁面進行配置後,單擊下一步:進階設定

    對正在啟動並執行應用進行變更

    警告

    重新部署應用後,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。

    1. 登入SAE控制台,在左側導覽列選擇應用管理 > 應用列表,然後選擇目標地區和目標命名空間,最後單擊目標應用程式名稱。

    2. 在目標應用的基礎資訊頁面,單擊部署應用

    對已停止的應用進行變更

    1. 登入SAE控制台,在左側導覽列選擇應用管理 > 應用列表,然後選擇目標地區和目標命名空間,最後單擊目標應用程式名稱。

    2. 在目標應用的基礎資訊頁面,單擊修改應用配置

  2. 按需選擇以下任意方式串連Nacos。

    方式一:佈建服務註冊發現

    找到並展開服務註冊發現地區,選擇Nacos註冊中心服務發現使用者自建註冊中心(Nacos、ZK等)

    SAE提供Java微服務自動定址的Nacos Server能力,您可以通過SAE服務註冊發現功能進行配置。

    MyXwWOG88K

    方式二:配置啟動參數

    通過配置啟動參數的方式時,您需要確認以下內容。

    • 確保SAE的網路與自建Nacos的網路互連。

    • 確保-D-XX參數未交替使用,以免命令失效。範例程式碼如下:

      • 修改前:

        java -Dalicloud.deployment.mode=EDAS_MANAGED -XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 -XX:+UnlockExperimentalVMOptions -XX:+UseWisp2 -Dio.netty.transport.noNative=true -XX:+UseG1GC -Dspring.profiles.active=yace -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false -jar /home/admin/app/xx-server.jar
      • 修改後:

        java -XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 -XX:+UnlockExperimentalVMOptions -XX:+UseWisp2 -Dio.netty.transport.noNative=true -XX:+UseG1GC -Dspring.profiles.active=yace -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false -jar /home/admin/app/xx-server.jar
    • 建議在部署應用時,使用鏡像或者JAR包方式,並配置啟動參數-Dnacos.use.endpoint.parsing.rule=false-Dnacos.use.cloud.namespace.parsing=false

      重要

      啟動參數需要放在-jar之前,否則可能會導致無法使用非SAE內建的註冊中心。

      • 如果採用鏡像方式,請將-Dnacos.use.endpoint.parsing.rule=false-Dnacos.use.cloud.namespace.parsing=false配置在鏡像檔案的程式啟動命令中。Docker鏡像製作方法,請參見製作Java鏡像

        範例程式碼如下:

        RUN echo 'eval exec java -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false -jar $CATALINA_OPTS /home/admin/app/hello-edas-0.0.1-SNAPSHOT.jar'> /home/admin/start.sh && chmod +x /home/admin/start.sh
      • 如果採用JAR包方式,請在控制台啟動命令設定地區的options設定文字框輸入-Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false。圖示為Open JDK 8運行環境下的Java應用。具體操作,請參見設定啟動命令

        bl4aSvSA79