全部产品
云市场

Dubbo 连接 SOFA 注册中心

更新时间:2020-01-10 14:12:33

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

前置条件

在进行开发前,您需要确认本地 Maven 配置文件 ~/.m2/settings.xml 中已配置 mvn.cloud.alipay.com 仓库的地址及用户名密码。配置后,工程才可以通过 Maven 获取 mvn.cloud.alipay.com 仓库里注册中心的 JAR 包。配置示例如下:

  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,并前往 Maven 安装目录 ~/.m2/ 覆盖原有配置文件。
settings

操作步骤

微服务与服务网格模式下的 Dubbo 服务注册有所不同:

  • 开发应用:微服务不仅支持使用 sofa-registry-dubbo-all 依赖接入 SOFA 服务注册中心,也支持服务网格的 sofa-registry-cloud-all
  • 发布应用:微服务要求在 经典应用服务 发布部署应用;而服务网格同时支持在 容器应用服务经典应用服务 发布应用。

微服务

以下是引入 sofa-registry-dubbo-all 依赖的服务注册方法,如需使用 sofa-registry-cloud-all 方法,参见 服务网格

  1. 引入注册中心依赖。在主 pom.xml 文件中添加以下依赖:
    1. <dependency>
    2. <groupId>com.alipay.sofa</groupId>
    3. <artifactId>sofa-registry-dubbo-all</artifactId>
    4. <version>1.0.0</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,antvip.endpoint,access 及 secret)是中间件的全局配置项,参数值均可在 脚手架 控制台获取。详见 引入 SOFA 中间件 > 中间件全局配置脚手架
  3. 前往 经典应用服务 发布应用,详见 应用部署
  4. 应用发布后,即可前往 中间件 > 微服务平台 > 微服务 > 服务管控 控制台页面查看发布的服务。微服务

服务网格

  1. pom.xml 文件中,引入以下 SDK 依赖:
    1. <dependency>
    2. <groupId>com.alipay.sofa</groupId>
    3. <artifactId>sofa-registry-cloud-all</artifactId>
    4. <version>1.2.2</version>
    5. </dependency>
    6. <dependency>
    7. <groupId>com.alipay.sofa</groupId>
    8. <artifactId>tracer-enterprise-sofa-boot-starter</artifactId>
    9. <version>3.0.4</version>
    10. <exclusions>
    11. <exclusion>
    12. <artifactId>config-common</artifactId>
    13. <groupId>com.alipay.configserver</groupId>
    14. </exclusion>
    15. <exclusion>
    16. <artifactId>fastjson</artifactId>
    17. <groupId>com.alibaba</groupId>
    18. </exclusion>
    19. </exclusions>
    20. </dependency>
    21. <dependency>
    22. <artifactId>config-common</artifactId>
    23. <groupId>com.alipay.configserver</groupId>
    24. <version>4.3.2.alipay</version>
    25. </dependency>

    说明:如果已经使用了依赖 dubbo-sofa-registry,需将其替换成上述的 SDK。

  2. 配置 Dubbo 的注册中心,使用 dsr: <dubbo:registry address="dsr://dsr"/>
  3. 通过以下任一方式,添加应用启动参数:
    • 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,antvip.endpoint,access 及 secret)是中间件的全局配置项,参数值可在 脚手架 控制台获取。详见 引入 SOFA 中间件 > 中间件全局配置
  4. 将改造完成的应用打包成镜像,详见 镜像构建
  5. 前往 容器应用服务经典应用服务 发布应用,详见 快速入门
  6. 应用发布后,即可前往 中间件 > 微服务平台 > 服务网格 > 服务管控 控制台,验证查看发布的服务。查看发布的服务

查看日志

前往 {user.dir}/logs/tracelog/ 目录查看注册中心的日志。

相关链接