全部产品

Dubbo 使用 SOFARegistry

更新时间:2020-07-13 11:55:10

本教程介绍如何将改造本地 Dubbo 工程,将其接入 SOFA 服务注册中心 SOFARegistry。

前置条件

在进行开发前,首先需要完成本地 Maven settings 中对 JAR 包仓库的配置,工程才可以通过 Maven 获取仓库里注册中心的 JAR 包。配置说明如下:

  • 配置路径:见下述示例。

    • Windows 系统:C:\Users\userName_XXX.m2\settings.xml
    • Mac or Linux 系统:/Users/userName_XXX/.m2/settings.xml

      注意:Linux or Mac OS 系统上,.m2 目录可能被隐藏。Mac OS 可以通过 Command + Shift + . 进行查看;Linux 可以通过 Ctrl + H 进行查看。

  • 配置内容:主要配置 mvn.cloud.alipay.com 仓库的地址及用户名密码,见下述示例。

    1. <servers>
    2. <server>
    3. <id>nexus-server@public</id>
    4. <username>${username}</username>
    5. <password>${password}</password>
    6. </server>
    7. <server>
    8. <id>nexus-server@public-snapshots</id>
    9. <username>${username}</username>
    10. <password>${password}</password>
    11. </server>
    12. <server>
    13. <id>mirror-all</id>
    14. <username>${username}</username>
    15. <password>${password}</password>
    16. </server>
    17. </servers>

    您也可以前往 SOFAStack > 脚手架 > Step 3 控制台页面,下载已配置好的 settings.xml,并前往上述配置路径,覆盖原有 settings.xml 文件。
    settings

本地开发

本地业务开发主要分成下述几个步骤:

  1. 接入服务中心:微服务支持下述 2 种方式接入 SOFA 服务注册中心:
  2. 业务代码编写。

接入服务中心

2 种接入方式的详情,说明如下:

通过 sofa-registry-dubbo-all 依赖接入

主要操作步骤如下:

  1. 引入注册中心依赖。在根目录下的主 pom.xml 文件中添加以下依赖:
    1. <dependency>
    2. <groupId>com.alipay.sofa</groupId>
    3. <artifactId>sofa-registry-dubbo-all</artifactId>
    4. <version>x.x.x</version>
    5. </dependency>
  2. 配置注册中心寻址参数。在 application.properties 文件中配置以下参数:
    1. spring.dubbo.registry.address=dsr://xxx:9003
    2. spring.dubbo.registry.parameters[com.alipay.env]=shared
    3. spring.dubbo.registry.parameters[com.alipay.instanceid]=分配instanceid
    4. spring.dubbo.registry.parameters[com.antcloud.antvip.endpoint]=xxx
    5. spring.dubbo.registry.parameters[com.antcloud.mw.access]=key
    6. spring.dubbo.registry.parameters[com.antcloud.mw.secret]=value

    说明:以上参数(instanceId,antcloudVip,accessKey 及 secretKey)是中间件的全局配置项,参数值均可在 SOFAStack > 脚手架 > Step 2 控制台获取。更多详情参见 引入 SOFA 中间件 > properties 配置项脚手架

通过 sofa-registry-cloud-all 依赖接入

主要操作步骤如下:

  1. 引入 sofa-registry-cloud-all SDK 依赖。版本信息,参见 SDK 版本说明
    1. <dependency>
    2. <groupId>com.alipay.sofa</groupId>
    3. <artifactId>sofa-registry-cloud-all</artifactId>
    4. <!-- 替换 x.x.x 为该 SDK 最新版本号 -->
    5. <version>x.x.x</version>
    6. </dependency>
  2. 引入 Tracer 依赖。根据 Dubbo 应用框架版本的不同,Tracer 提供下述 3 种接入方式,请根据实际业务需求选择合适方式。

    • Spring Boot 1.x
    • Spring Boot 2.x
    • 非 Spring Boot 类型的 Dubbo 应用。

    Spring Boot 1.x

    1. <!-- for Spring Boot 1.X -->
    2. <dependency>
    3. <groupId>com.alipay.sofa</groupId>
    4. <artifactId>tracer-enterprise-sofa-boot-starter</artifactId>
    5. <version>2.3.7.JST.1</version>
    6. <exclusions>
    7. <exclusion>
    8. <groupId>com.alipay.sofa.common</groupId>
    9. <artifactId>sofa-common-tools</artifactId>
    10. </exclusion>
    11. <exclusion>
    12. <groupId>com.alipay.sofa</groupId>
    13. <artifactId>tracer-enterprise-dst-plugin</artifactId>
    14. </exclusion>
    15. </exclusions>
    16. </dependency>
    17. <dependency>
    18. <groupId>com.alipay.sofa.common</groupId>
    19. <artifactId>sofa-common-tools</artifactId>
    20. <version>1.0.17</version>
    21. </dependency>

    Spring Boot 2.x

    1. <!-- for Spring Boot 2.X -->
    2. <dependency>
    3. <groupId>com.alipay.sofa</groupId>
    4. <artifactId>tracer-enterprise-sofa-boot-starter</artifactId>
    5. <version>3.2.3.JST.1</version>
    6. <exclusions>
    7. <exclusion>
    8. <groupId>com.alipay.sofa.common</groupId>
    9. <artifactId>sofa-common-tools</artifactId>
    10. </exclusion>
    11. <exclusion>
    12. <groupId>com.alipay.sofa</groupId>
    13. <artifactId>tracer-enterprise-dst-plugin</artifactId>
    14. </exclusion>
    15. </exclusions>
    16. </dependency>
    17. <dependency>
    18. <groupId>com.alipay.sofa.common</groupId>
    19. <artifactId>sofa-common-tools</artifactId>
    20. <version>1.0.17</version>
    21. </dependency>

    非 Spring Boot
    操作方式如下:

    • 引入上文 Spring boot 2.x 相同依赖。
    • 在代码中, Main 启动入口第一行加入以下开关:
      1. SofaTracerConfiguration.setProperty(SofaTracerConfiguration.JSON_FORMAT_OUTPUT, "false");
  3. 配置 Dubbo 的注册中心,使用 dsr: <dubbo:registry address="dsr://dsr"/>
  4. 通过以下任一方式,添加应用启动参数:
    • dubbo.properties 中配置下述属性:
      1. com.alipay.instanceid= // 需要填写
      2. com.antcloud.antvip.endpoint= // 需要填写
      3. com.antcloud.mw.access= // 需要填写
      4. com.antcloud.mw.secret= // 需要填写
    • 指定 JVM 启动参数值:
      1. -Dcom.alipay.instanceid= // 需要填写
      2. -Dcom.antcloud.antvip.endpoint= // 需要填写
      3. -Dcom.antcloud.mw.access= // 需要填写
      4. -Dcom.antcloud.mw.secret= // 需要填写
    • 指定系统环境变量:
      1. SOFA_INSTANCE_ID= // 需要填写
      2. SOFA_ANTVIP_ENDPOINT= // 需要填写
      3. SOFA_ACCESS_KEY= // 需要填写
      4. SOFA_SECRET_KEY= // 需要填写

      说明:以上参数(instanceId,antcloudVip,accessKey 及 secretKey)是中间件的全局配置项,参数值均可在 SOFAStack > 脚手架 > Step 2 控制台获取。更多详情参见 引入 SOFA 中间件 > properties 配置项脚手架

发布应用

对应用的发布及发布后的查询,说明如下:

查看日志

相关日志存放路径为:{user.dir}/logs/tracelog/