连接 SOFA 服务注册中心
应用接入服务网格有两种方式:
通过无侵入的方式劫持流量,并代理注册、发现和通讯流量。
通过服务网格 SDK 接入服务网格。该 SDK 会代理应用注册和订阅请求,并连接到 SOFA 服务注册中心。
本文将根据微服务类型,介绍以下三种微服务如何通过服务网格 SDK 接入 SOFA 服务注册中心(即 SOFARegistry),完成服务注册。
SOFABoot 服务
升级 SOFABoot 依赖版本至最新版本。
版本信息,请参见 SOFABoot 版本说明。
<parent> <groupId>com.alipay.sofa</groupId> <artifactId>sofaboot-enterprise-dependencies</artifactId> <version>3.x.x</version> </parent>
通过以下任一方式,添加应用启动参数:
在配置文件中增加配置:
在
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 中的配置示例如下截图:
-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 服务
引入
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>
引入 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");
配置 Dubbo 的注册中心,使用 dsr:
<dubbo:registry address="dsr://dsr"/>
。通过以下任一方式,添加应用启动参数:
在
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 服务
引入以下
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>
根据您的 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>
通过以下任一方式,添加应用启动参数。
重要如您即将使用的应用服务发布平台不是 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。
本地应用改造完成后,您即可将该应用发布部署至 容器应用服务 或 经典应用服务(仅专有云)。部署步骤详情请参见 服务发布。
- 本页导读 (0)