全部产品
云市场

快速入门

更新时间:2020-05-09 18:42:39

服务网格提供容器和虚拟机两种构建模式,两种构建模式主要区别在于发布部署平台的不同。您可以根据业务需求,选择合适的构建模式完成微服务构建和发布,最后在服务网格控制台进行服务管控与治理。本文将引导您快速体验服务网格的微服务管理和治理能力。

容器构建模式

获取中间件全局配置项

使用服务网格前,您需要先获取以下中间件的全局配置信息:

准备镜像

容器构建模式下,服务网格要求使用镜像方式进行发布。因此,您需要先将您的应用(目前支持 SOFA、Dubbo 和 Spring Cloud)打包成镜像,而后进行发布。

此处,您可以直接使用提供的示例镜像,也可自行改造已有的工程项目:

  • 使用示例镜像:已提前准备好示例镜像,您可以直接使用任一镜像,快速体验服务网格。
  • 改造已有的本地工程:您需要在本地代码中,完成服务注册,即将工程项目接入 SOFA 服务注册中心。
注意:有关本地 SOFABoot 工程的开发与部署,可参考 开始使用 SOFARPC。要使用服务网格,只需对本地工程进行改造即可。

示例工程

您可以前往 Github 下载 SOFAStack 服务网格 Demo 工程 到本地,以便快速了解并开发您自己的应用工程。

示例镜像

根据所在的地域,选择使用相应的示例镜像即可。

华东 1(杭州)
类型 镜像地址
SOFA Service registry-vpc.cn-hangzhou.aliyuncs.com/sofa-samples/sofahellomeshserver:1.0.1
SOFA Client registry-vpc.cn-hangzhou.aliyuncs.com/sofa-samples/sofahellomeshclient:1.0.1
Dubbo Service registry-vpc.cn-hangzhou.aliyuncs.com/sofa-samples/dubboechoprovider:1.0.1
Dubbo Client registry-vpc.cn-hangzhou.aliyuncs.com/sofa-samples/dubboechoconsumer:1.0.1
Spring Cloud Service registry-vpc.cn-hangzhou.aliyuncs.com/sofa-samples/springcloudreservationservice:1.1.4
Spring Cloud Client registry-vpc.cn-hangzhou.aliyuncs.com/sofa-samples/springcloudreservationclient:1.1.4
华东 2(上海)
类型 镜像地址
SOFA Service registry-vpc.cn-shanghai.aliyuncs.com/sofa-samples/sofahellomeshserver:1.0.1
SOFA Client registry-vpc.cn-shanghai.aliyuncs.com/sofa-samples/sofahellomeshclient:1.0.1
Dubbo Service registry-vpc.cn-shanghai.aliyuncs.com/sofa-samples/dubboechoprovider:1.0.1
Dubbo Client registry-vpc.cn-shanghai.aliyuncs.com/sofa-samples/dubboechoconsumer:1.0.1
Spring Cloud Service registry-vpc.cn-shanghai.aliyuncs.com/sofa-samples/springcloudreservationservice:1.1.4
Spring Cloud Client registry-vpc.cn-shanghai.aliyuncs.com/sofa-samples/springcloudreservationclient:1.1.4

改造本地工程

使用服务网格,需要将本地工程接入 SOFA 服务注册中心,所以您需要对已有的项目进行一些改造。

SOFABoot 服务
  1. 升级 SOFABoot 依赖版本至最新版本。版本信息,详见 SOFABoot 版本说明
    1. <parent>
    2. <groupId>com.alipay.sofa</groupId>
    3. <artifactId>sofaboot-enterprise-dependencies</artifactId>
    4. <version>3.x.x</version>
    5. </parent>
  2. 通过以下任一方式,添加应用启动参数:
    • application.properties 中配置如下:
      1. com.alipay.env=shared
      2. com.alipay.instanceid= // 需要填写
      3. com.antcloud.antvip.endpoint= // 需要填写
      4. com.antcloud.mw.access= // 需要填写
      5. com.antcloud.mw.secret= // 需要填写
    • 指定 JVM 启动参数值:
      1. -Dcom.alipay.env=shared
      2. -Dcom.alipay.instanceid= // 需要填写
      3. -Dcom.antcloud.antvip.endpoint= // 需要填写
      4. -Dcom.antcloud.mw.access= // 需要填写
      5. -Dcom.antcloud.mw.secret= // 需要填写
    • 指定系统环境变量:
      1. COM_ALIPAY_ENV=shared
      2. SOFA_INSTANCE_ID= // 需要填写
      3. SOFA_ANTVIP_ENDPOINT= // 需要填写
      4. SOFA_ACCESS_KEY= // 需要填写
      5. SOFA_SECRET_KEY= // 需要填写
      参数说明:以上参数值是中间件的全局配置项,可在 脚手架控制台 获取,详见 引入 SOFA 中间件 > 中间件全局配置
Dubbo 服务
  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 依赖。Tracer 针对 Dubbo 框架提供 3 种方式接入,分别针对 Spring Boot 1.x、Spring Boot 2.x 和 非 Spring Boot 类型的 Dubbo 应用。根据您的实际业务需求,选择相应的 Tracer 依赖接入。
    • 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
      Tracer 依赖信息和与上文 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= // 需要填写
      参数说明:以上参数值是中间件的全局配置项,可在 脚手架控制台 获取,详见 引入 SOFA 中间件 > 中间件全局配置
Spring Cloud 服务
  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. 根据您的 Spring Cloud 版本信息,引入对应的 Tracer 依赖。
    • Spring Cloud:Camden、Dalston 和 Edgware 版本(对应 Spring Boot 1.x 版本)
      1. <!-- 支持服务调用tracer日志记录能力 -->
      2. <!-- for Spring Boot 1.X -->
      3. <dependency>
      4. <groupId>com.alipay.sofa</groupId>
      5. <artifactId>tracer-enterprise-sofa-boot-starter</artifactId>
      6. <version>2.3.7.JST.1</version>
      7. <exclusions>
      8. <exclusion>
      9. <groupId>com.alipay.sofa.common</groupId>
      10. <artifactId>sofa-common-tools</artifactId>
      11. </exclusion>
      12. <exclusion>
      13. <groupId>com.alipay.sofa</groupId>
      14. <artifactId>tracer-enterprise-dst-plugin</artifactId>
      15. </exclusion>
      16. </exclusions>
      17. </dependency>
      18. <dependency>
      19. <groupId>com.alipay.sofa.common</groupId>
      20. <artifactId>sofa-common-tools</artifactId>
      21. <version>1.0.17</version>
      22. </dependency>
    • Spring Cloud:Finchley、Greenwich 版本(对应 Spring Boot 2.x 版本)
      1. <!-- 接入tracer -->
      2. <!-- for Spring Boot 2.X -->
      3. <dependency>
      4. <groupId>com.alipay.sofa</groupId>
      5. <artifactId>tracer-enterprise-sofa-boot-starter</artifactId>
      6. <version>3.2.3.JST.1</version>
      7. <exclusions>
      8. <exclusion>
      9. <groupId>com.alipay.sofa.common</groupId>
      10. <artifactId>sofa-common-tools</artifactId>
      11. </exclusion>
      12. <exclusion>
      13. <groupId>com.alipay.sofa</groupId>
      14. <artifactId>tracer-enterprise-dst-plugin</artifactId>
      15. </exclusion>
      16. </exclusions>
      17. </dependency>
      18. <dependency>
      19. <groupId>com.alipay.sofa.common</groupId>
      20. <artifactId>sofa-common-tools</artifactId>
      21. <version>1.0.17</version>
      22. </dependency>
  3. 通过以下任一方式,添加应用启动参数。

    注意:如您即将使用的应用服务发布平台不是 SOFAStack 自提供的容器应用服务或经典应用服务,则无需添加以下参数配置。
    • 在应用 yml 文件指定参数:
      1. sofa:
      2. registry:
      3. discovery:
      4. instanceId: // 需要填写
      5. antcloudVip: // 需要填写
      6. accessKey: // 需要填写
      7. secretKey: // 需要填写
    • 指定 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_SECRET_KEY=
      4. SOFA_ACCESS_KEY=
      参数说明:以上参数值是中间件的全局配置项,均可在 脚手架控制台 获取,详见 引入 SOFA 中间件 > 中间件全局配置

改造完成后,您需要将该应用打包构建成镜像,详见 制作 SOFABoot 应用的 Docker 镜像。镜像成功构建后,需将其上传至 容器应用服务 镜像仓库,参见 镜像仓库

发布应用服务

发布应用

  1. 进入 应用管理控制台,选择 应用列表
  2. 在应用列表上方,点击 创建应用
  3. 在创建页面输入应用信息:
    • 应用名称:应用的名称。
    • 技术栈:Service Mesh 应用不依赖技术栈信息,可以选择 Spring Boot 或 SOFABoot。
  4. 点击 确定,待应用状态变成 创建完成,即完成应用创建。

创建集群

  1. 进入 容器应用服务控制台,选择 集群管理 > 集群详情
  2. 集群详情 页,点击 创建集群
  3. 创建集群 页面,填写以下配置信息:
    • 基本信息
      • 集群名称
      • 网络类型:默认仅支持虚拟私有网络(VPC)。
      • 配置交换机:创建一个新的交换机或选择当前可用区下的交换机来分配私网 IP。
      • 安全组名称:创建一个新的安全组或选择当前可用区的安全组。
      • 启用服务网格:默认关闭,必须 启用服务网格
      • 启用日志服务:默认关闭。
        启用服务网格
    • 网络配置:保持默认配置即可。
    • 节点配置
      • 可用区:从下拉列表中选择当前工作空间的可用区。
      • 部署单元:选择节点的部署单元。
        • 系列:选择节点对应的 ECS 系列。
      • 规格:选择节点对应的 ECS 规格。
      • 系统盘:支持 SSD 及 高效云盘。
      • 挂载数据盘:支持 SSD 及 高效云盘。
      • 实例数量:输入待创建的节点数量。
      • 实例名称前缀:指定节点名称的前缀,会以 -[n~(n+1)] 的格式自动为其添加序列号。
      • 设置 Root 密码:登录节点的密码,如遗忘可登录 ECS 控制台重置密码。
    • 预览:预览集群配置信息,确认无误。
  4. 集群配置概览 页中点击 创建,等待集群创建完成。

创建并发布应用服务

创建应用服务
  1. 进入 容器应用服务控制台,选择 应用发布 > 应用服务
  2. 进入应用服务列表页,点击 创建
  3. 在新打开页面,填写应用服务的基本信息:
    • 命名空间:必选,保持默认 default。
    • 应用服务名称:必填,自定义应用服务名
    • 所属应用:必选,选择刚刚在应用管理创建的应用
    • 负责人:必选,默认为应用创建人
    • 副本个数:必填,输入该应用服务需要部署的 Pod 数量
  4. 点击 下一步,开始配置 Pod 模板:
    • 容器名称:容器名称
    • 镜像地址:输入镜像仓库地址
    • CPU 配置:容器使用的 CPU 的数量
    • 请求核数:能保证的最小核数
    • 最大核数:能使用的最大核数
    • 内存配置:容器使用的内存的数量
    • 请求内存:能保证的最小内存数量
    • 最大内存:能使用的最大内存数量
    • 环境变量配置:指定容器启动后会有哪些系统环境变量。如果您使用的是上述提供的 示例镜像,必须在此配置中间件全局配置项。参数值均可在 脚手架 中获取。详细获取方法,参见上文 获取中间件全局配置项
      • SOFA_INSTANCE_ID:中间件实例唯一标识
      • SOFA_ANTVIP_ENDPOINT:中间件基于 AntVIP 寻址
      • SOFA_ACCESS_KEY:访问控制键值
      • SOFA_SECRET_KEY:访问控制密钥
        环境变量
  5. 点击 下一步,配置访问:可选择 集群内访问、VPC 内网访问、公网访问。
  6. 点击 下一步,配置部署和调度:
    • 升级模式:必须选择 替换升级 模式。替换升级模式下,会用新的 Pod 替换老的 Pod。
    • 部署单元:选择部署单元。
    • 部署分组策略:快速分组、每个 POD 一组、公分一组。
    • 最小分组数:部署时保证的最小分组数量。
    • POD 调度策略:按部署单元平均分配。
    • 注入 SOFAMesh:必须开启此功能,开启时,会为 Pod 注入 SOFAMesh sidecar。
      注入 SOFAMesh
  7. 点击 预览并提交,完成应用服务创建。
发布应用服务
  1. 容器应用服务控制台,选择 应用发布 > 发布单
  2. 在发布部署大盘,点击 创建发布单
  3. 创建发布单 页面,填写以下发布信息后:
    • 基本信息
      • 标题:发布单标题。
      • 部署单元:展示当前工作空间下的所有部署单元。
      • 应用服务发布列表:选择需要发布的应用服务。
    • 高级配置:设置应用服务之间的依赖关系。
  4. 预览 页面,确认信息无误后,点击 创建
  5. 发布单详情 页面,点击 整体发布 即可开始发布。

服务监控及治理

应用服务发布完成后,您可以前往 微服务平台 > 服务网格,查看服务列表及 服务详情。在服务详情页,可以看此应用服务的集群类型为容器,如下图所示。

容器

如发现服务异常,您可以通过添加 服务限流规则服务路由规则 进行服务治理。

虚拟机构建模式(仅专有云)

虚拟机构建模式下,您也需要先 获取中间件全局配置项,并改造已有的本地工程,接入 SOFA 注册中心。改造完成后,即可在本地 IDE 中编译运行该工程,获取该工程项目的可执行 Jar 包,而后进行应用发布。

发布应用服务

创建应用

  1. 前往 应用管理控制台,选择 应用列表 进入应用列表页面。
  2. 点击 创建应用,输入应用信息:
    • 应用名称:根据您的业务需要自定义应用名。
    • 技术栈选择:技术栈 2.0 架构。
  3. 点击 确定,新创建的应用出现在应用列表的最上方。应用状态为 创建中,数秒后变为 创建完成

创建应用服务实例

  1. 前往 经典应用服务,选择 应用发布 > 应用服务,进入应用服务列表页面。
  2. 点击 创建服务实例,输入相应的信息:
    • 应用:选择之前在应用管理中创建的应用;
    • 服务实例名称:输入自定义的服务实例名称;
    • 负责人:选择自己;
    • 技术栈版本:必须选择支持 Mesh 的版本。
  3. 点击 确定,完成服务实例创建。
  4. 返回应用服务实例列表,找到并点击刚刚创建的服务实例,进入该实例详情页。
  5. 应用服务实例信息 中,切换至 环境变量 页签,输入以下变量的参数值:
    • bp.com.alipay.instanceid:中间件实例唯一标识
    • bp.com.antcloud.mw.access:访问控制键值 Access Key ID
    • bp.com.antcloud.mw.secret:访问控制密钥 Access Key Secret环境变量参数说明
  6. 点击 保存

购买资源并绑定资源到此应用服务

进入刚刚创建的服务实例详情页,在 应用服务实例信息 中,可为该服务实例购买并绑定资源,包括云服务器 ECS、负载均衡 SLB、云数据库 RDS 等。

发布应用

  1. 在经典应用服务控制台,选择 应用发布 > 应用服务 > 发布包管理
  2. 找到之前创建的应用,点击 管理 进入发布包管理界面,点击 上传发布包
  3. 在弹出框中,使用默认版本号,文件选择本地工程编译运行生成的 jar 包。
  4. 点击 确定,待进度条完成后可以看到上传的版本。
  5. 点击页面右上方的 发布部署,然后在 发布部署 窗口中选择刚刚创建的服务实例以及刚才上传的版本,点击 立即发布,跳转至发布单。
  6. 在发布单详情看到状态 执行成功,即表示该应用已经发布成功。

服务管控

应用发布完成后,即可前往 微服务平台 > 服务网格 页面,查看服务列表及服务详情,并对服务进行管控与治理。通过虚拟机构建模式发布的应用服务,服务详情页中,您可以看到其集群类型为虚拟机,如下图所示。

虚拟机