使用自建Nacos服务注册中心

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本地开发的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