全部产品

连接 SOFA 服务注册中心

在使用服务网格之前,您需要将本地工程接入 SOFA 服务注册中心,完成服务注册。本文介绍如何把微服务接入 SOFA 服务注册中心。

下面根据微服务类型,详细介绍以下三种微服务如何接入 SOFA 服务注册中心(即 SOFARegistry),完成服务注册。

SOFABoot 服务

  1. 升级 SOFABoot 依赖版本至最新版本。

    版本信息,请参见 SOFABoot 版本说明

    <parent>
         <groupId>com.alipay.sofa</groupId>
         <artifactId>sofaboot-enterprise-dependencies</artifactId>
         <version>3.x.x</version>
    </parent>
  2. 通过以下任一方式,添加应用启动参数:

    • 在配置文件中增加配置:

      app/web/src/main/resources/config/application.properties 文件中新增如下配置:

      com.alipay.env=shared
      com.alipay.instanceid=                  //填写实例 ID。
      com.antcloud.antvip.endpoint=    //填写环境的 AntVIP 地址。
      com.antcloud.mw.access=             //填写账号的 AccessKey ID。
      com.antcloud.mw.secret=              //填写账号的 AccessKey Secret。
      说明

      以上参数值可在 脚手架控制台 获取,详情请参见 配置项说明

    • 指定 JVM 启动参数:

      说明

      这种方式优先级高于代码。

      在 IntelliJ IDEA 中的配置示例如下截图:

      JVM 配置
      -Dcom.alipay.env=shared
      -Dcom.alipay.instanceid=                  //填写实例 ID。
      -Dcom.antcloud.antvip.endpoint=    //填写环境的 AntVIP 地址。
      -Dcom.antcloud.mw.access=            //填写账号的 AccessKey ID。
      -Dcom.antcloud.mw.secret=            //填写账号的 AccessKey Secret。
      说明

      以上参数值可在 脚手架控制台 获取,详情请参见 配置项说明

Dubbo 服务

  1. 引入 sofa-registry-cloud-all SDK 依赖。

    版本信息,请参见 SDK 版本说明

    <dependency>
         <groupId>com.alipay.sofa</groupId>
         <artifactId>sofa-registry-cloud-all</artifactId>
         <!-- 替换 x.x.x 为该 SDK 最新版本号 -->
         <version>x.x.x</version>
    </dependency>
  2. 引入 Tracer 依赖。

    Tracer 针对 Dubbo 框架提供 3 种方式接入,分别针对 Spring Boot 1.x、Spring Boot 2.x 和非 Spring Boot 类型的 Dubbo 应用。请根据您的实际业务需求,选择相应的 Tracer 依赖接入。

    • Spring Boot 1.x

      <!-- for Spring Boot 1.X -->
      <dependency>
          <groupId>com.alipay.sofa</groupId>
          <artifactId>tracer-enterprise-sofa-boot-starter</artifactId>
          <version>2.3.7.JST.1</version>
          <exclusions>
              <exclusion>
                  <groupId>com.alipay.sofa.common</groupId>
                  <artifactId>sofa-common-tools</artifactId>
              </exclusion>
              <exclusion>
                  <groupId>com.alipay.sofa</groupId>
                  <artifactId>tracer-enterprise-dst-plugin</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
      <dependency>
          <groupId>com.alipay.sofa.common</groupId>
          <artifactId>sofa-common-tools</artifactId>
          <version>1.0.17</version>
      </dependency>
    • Spring Boot 2.x

      <!-- for Spring Boot 2.X -->
      <dependency>
          <groupId>com.alipay.sofa</groupId>
          <artifactId>tracer-enterprise-sofa-boot-starter</artifactId>
          <version>3.2.3.JST.1</version>
          <exclusions>
              <exclusion>
                  <groupId>com.alipay.sofa.common</groupId>
                  <artifactId>sofa-common-tools</artifactId>
              </exclusion>
              <exclusion>
                  <groupId>com.alipay.sofa</groupId>
                  <artifactId>tracer-enterprise-dst-plugin</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
      <dependency>
          <groupId>com.alipay.sofa.common</groupId>
          <artifactId>sofa-common-tools</artifactId>
          <version>1.0.17</version>
      </dependency>
    • 非 Spring Boot

      Tracer 依赖信息和与上文 Spring boot 2.x 相同。引入后,还需要在代码 Main 启动入口第一行加入以下开关:

      SofaTracerConfiguration.setProperty(SofaTracerConfiguration.JSON_FORMAT_OUTPUT,"false");
  3. 配置 Dubbo 的注册中心,使用 dsr:<dubbo:registry address="dsr://dsr"/>

  4. 通过以下任一方式,添加应用启动参数:

    • dubbo.properties 中配置如下:

      com.alipay.instanceid=                   //填写实例 ID。
      com.antcloud.antvip.endpoint=     //填写环境的 AntVIP 地址。
      com.antcloud.mw.access=             //填写账号的 AccessKey ID。
      com.antcloud.mw.secret=              //填写账号的 AccessKey Secret。
    • 指定 JVM 启动参数:

      -Dcom.alipay.env=shared
      -Dcom.alipay.instanceid=                 //填写实例 ID。
      -Dcom.antcloud.antvip.endpoint=   //填写环境的 AntVIP 地址。
      -Dcom.antcloud.mw.access=           //填写账号的 AccessKey ID。
      -Dcom.antcloud.mw.secret=           //填写账号的 AccessKey Secret。
    • 指定系统环境变量:

      SOFA_INSTANCE_ID=                 // 填写实例 ID。
      SOFA_ANTVIP_ENDPOINT=       //填写环境的 AntVIP 地址。
      SOFA_ACCESS_KEY=                  //填写账号的 AccessKey ID。
      SOFA_SECRET_KEY=                  //填写账号的 AccessKey Secret。
      说明

      以上参数值可在 脚手架控制台 获取,详情请参见 配置项说明

Spring Cloud 服务

  1. 引入以下 sofa-registry-cloud-all SDK 依赖。

    版本信息,请参见 SDK 版本说明

    <dependency>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>sofa-registry-cloud-all</artifactId>
        <!-- 替换 x.x.x 为该 SDK 最新版本号 -->
        <version>x.x.x</version>
    </dependency>
  2. 根据您的 Spring Cloud 版本信息,引入对应的 Tracer 依赖。

    • Camden、Dalston 和 Edgware 版本(对应 Spring Boot 1.x 版本)

      <!-- 支持服务调用tracer日志记录能力 -->
      <!-- for Spring Boot 1.X -->
      <dependency>
          <groupId>com.alipay.sofa</groupId>
          <artifactId>tracer-enterprise-sofa-boot-starter</artifactId>
          <version>2.3.7.JST.1</version>
          <exclusions>
              <exclusion>
                  <groupId>com.alipay.sofa.common</groupId>
                  <artifactId>sofa-common-tools</artifactId>
              </exclusion>
              <exclusion>
                  <groupId>com.alipay.sofa</groupId>
                  <artifactId>tracer-enterprise-dst-plugin</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
      <dependency>
          <groupId>com.alipay.sofa.common</groupId>
          <artifactId>sofa-common-tools</artifactId>
          <version>1.0.17</version>
      </dependency>
    • Finchley、Greenwich 版本(对应 Spring Boot 2.x 版本)

      <!-- 接入tracer -->
      <!-- for Spring Boot 2.X -->
      <dependency>
          <groupId>com.alipay.sofa</groupId>
          <artifactId>tracer-enterprise-sofa-boot-starter</artifactId>
          <version>3.2.3.JST.1</version>
          <exclusions>
              <exclusion>
                  <groupId>com.alipay.sofa.common</groupId>
                  <artifactId>sofa-common-tools</artifactId>
              </exclusion>
              <exclusion>
                  <groupId>com.alipay.sofa</groupId>
                  <artifactId>tracer-enterprise-dst-plugin</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
      <dependency>
          <groupId>com.alipay.sofa.common</groupId>
          <artifactId>sofa-common-tools</artifactId>
          <version>1.0.17</version>
      </dependency>
  3. 通过以下任一方式,添加应用启动参数。

    注意

    如您即将使用的应用服务发布平台不是 SOFAStack 提供的容器应用服务或经典应用服务,则无需添加以下参数配置。

    • 在应用 YAML 文件中指定以下参数:

      sofa:
      registry:
        discovery:
              instanceId:        //填写实例 ID。
              antcloudVip:     //填写环境的 AntVIP 地址。
              accessKey:        //填写账号的 AccessKey ID。
              secretKey:         //填写账号的 AccessKey Secret。
    • 指定 JVM 启动参数:

      -Dcom.alipay.instanceid=                  //填写实例 ID。
      -Dcom.antcloud.antvip.endpoint=    //填写环境的 AntVIP 地址。
      -Dcom.antcloud.mw.access=            //填写账号的 AccessKey ID。
      -Dcom.antcloud.mw.secret=             //填写账号的 AccessKey Secret。
    • 指定系统环境变量:

      SOFA_INSTANCE_ID=               //填写实例 ID。
      SOFA_ANTVIP_ENDPOINT=     //填写环境的 AntVIP 地址。
      SOFA_SECRET_KEY=                 //填写账号的 AccessKey ID。
      SOFA_ACCESS_KEY=                 //填写账号的 AccessKey Secret。
      说明

      以上参数值可在 脚手架控制台 获取,详情请参见 配置项说明

      本地应用改造完成后,您即可将该应用发布部署至 容器应用服务经典应用服务(仅专有云)。部署步骤详情请参见 服务发布