本文介绍如何改造本地 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 和 Mac OS 系统上,
.m2
目录可能被隐藏。Mac OS 可以通过Command + Shift + .
进行查看;Linux 可以通过Ctrl + H
进行查看。
配置内容:
配置
mvn.cloud.alipay.com
仓库的地址及用户名密码。配置示例如下:
<servers> <server> <id>nexus-server@public</id> <username>${username}</username> <password>${password}</password> </server> <server> <id>nexus-server@public-snapshots</id> <username>${username}</username> <password>${password}</password> </server> <server> <id>mirror-all</id> <username>${username}</username> <password>${password}</password> </server> </servers>
更新开发环境 mirror 配置(可选,本地不能正常下载 JAR 包时进行配置)。
如果本地 maven
settings.xml
(默认路径~/.m2/settings.xml
)配置 mirror 为*
, 需要排除alipay-cloud-server@public
仓库托管,示例如下:<mirror> <id>nexus-aliyun</id> <!-- <mirrorOf>*</mirrorOf> --> <mirrorOf>*,!alipay-cloud-server@public</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
mirrorOf
的配置*
改成*,!alipay-cloud-server@public
, 代表不需要托管仓库alipay-cloud-server@public
。
您也可以前往 脚手架控制台 下载已配置好的 settings.xml
,并前往上述配置路径,覆盖原有 settings.xml
文件。
操作步骤
在本地开发应用。
添加仓库地址。
为保证 SDK 和对应 tracer 包能下载到,请在项目根
pom.xml
添加仓库地址:<repositories> <repository> <id>alipay-cloud-server@public</id> <url>http://mvn.cloud.alipay.com/nexus/content/groups/open</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
在工程根目录下的
pom.xml
中,引入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>
说明sofa-registry-cloud-all
SDK 1.2.8 版本兼容目前 Dubbo 应用的所有版本。如果是通过
sofa-registry-dubbo-all
引入的 SDK 依赖,可直接升级为sofa-registry-cloud-all
依赖。
引入 Tracer 依赖。
根据 Dubbo 应用框架版本的不同,Tracer 提供下述 3 种接入方式,请根据实际业务需求选择合适方式。
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 类型的 Dubbo 应用。
引入上文 Spring boot 2.x 相同依赖。
在代码中, Main 启动入口第一行加入以下开关:
SofaTracerConfiguration.setProperty(SofaTracerConfiguration.JSON_FORMAT_OUTPUT,"false");
配置 Dubbo 的注册中心。
使用 dsr:
<dubbo:registry address="dsr://dsr"/>
。添加应用启动参数。
您可以通过以下任一方式添加:
在
dubbo.properties
中配置下述属性:说明默认路径为
classpath
根目录下的dubbo.properties
,您也可以根据需求使用 JVM 参数-Ddubbo.properties.file=xxx.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.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。
发布应用。
登录 SOFAStack 控制台。
在左侧导航栏选择 运维管理 > 经典应用服务 > 应用发布 > 发布单,然后创建并执行发布单。
具体操作,请参见 新建并执行发布单。应用发布后,您可以在左侧导航栏选择 中间件 > 微服务平台 > 微服务 > 服务管控,然后在 服务管控 页面查看发布的服务。
查看日志
您可以在 /home/admin/logs/registry
中查看注册中心的日志。
如果您使用的是旧版客户端运行模式,请在 /home/admin/logs/confreg
中查看。