全部产品
云市场

快速入门

更新时间:2020-01-19 17:10:50

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

  • 容器构建模式:本地代码构建完成后,将工程制作成镜像文件,并前往 容器应用服务 发布部署应用。
  • 虚拟机构建模式(仅专有云):本地代码构建完成后,将工程打包成 Jar 包,并前往 经典应用服务 发布部署应用。

容器构建模式

获取中间件全局配置项

使用服务网格前,您需要先获取中间件的全局配置信息,可以在 脚手架 > Step 2 中获取。更多详情,参见 引入 SOFA 中间件 > 中间件全局配置创建和管理访问控制密钥

  • InstanceId:中间件实例唯一标识;
  • AntVIP:中间件基于 AntVIP 寻址;
  • Access Key ID:访问控制键值;
  • Access Key Secret:访问控制密钥。
    参数

准备镜像

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

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

  • 使用示例镜像:已提前准备好示例镜像,您可以直接使用任一镜像,快速体验服务网格。
  • 改造已有的本地工程:您需要在本地代码中,完成服务注册,即将工程项目接入 SOFA 服务注册中心。

    说明:有关本地 SOFABoot 工程的开发与部署,可参考 开始使用 SOFARPC。要使用服务网格,只需对本地工程进行改造即可。

示例镜像

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

华东 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 依赖版本至 3.1.1 版本:
    1. <parent>
    2. <groupId>com.alipay.sofa</groupId>
    3. <artifactId>sofaboot-enterprise-dependencies</artifactId>
    4. <version>3.1.1</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= // 需要填写
      参数说明:以上参数值是中间件的全局配置项,可在 脚手架 > Step 2 获取,详见 引入 SOFA 中间件 > 中间件全局配置
Dubbo 服务
  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= // 需要填写
      参数说明:以上参数值是中间件的全局配置项,可在 脚手架 > Step 2 获取,详见 引入 SOFA 中间件 > 中间件全局配置
Spring Cloud 服务
  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>
  2. 注释掉或移除以下依赖:
    1. <dependency>
    2. <groupId>org.springframework.cloud</groupId>
    3. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    4. </dependency>
  3. 通过以下任一方式,添加应用启动参数:
    • 在应用 yml 文件指定参数:
      1. sofa:
      2. registry:
      3. discovery:
      4. instanceId: // 需要填写
      5. antcloudVip: // 需要填写
      6. accessKey: // 需要填写
      7. secretKey: // 需要填写
    • 指定 JVM 启动参数值:
      1. -Dsofa.registry.discovery.instanceId= // 需要填写
      2. -Dsofa.registry.discovery.antcloudVip= // 需要填写
      3. -Dsofa.registry.discovery.accessKey= // 需要填写
      4. -Dsofa.registry.discovery.secretKey= // 需要填写
    • 指定系统环境变量:
      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,类似原生 Deployment 的 RollingUpdate 策略。
    • 部署单元:选择部署单元。
    • 部署分组策略:快速分组、每个 POD 一组、公分一组。
    • 最小分组数:部署时保证的最小分组数量。
    • POD 调度策略:按部署单元平均分配。
    • 注入 SOFAMesh:必须开启此功能,开启时,会为 Pod 注入 SOFAMesh sidecar。
      注入 SOFAMesh
  7. 点击 预览并提交,完成应用服务创建。
发布应用服务
  1. 在容器应用服务控制台,选择 应用发布 > 发布单
  2. 在发布部署大盘,点击 创建发布单
  3. 创建发布单 页面,填写以下发布信息后:
    • 基本信息
      • 标题:发布单标题。
      • 部署单元:展示当前工作空间下的所有部署单元。
      • 应用服务发布列表:选择需要发布的应用服务。
    • 高级配置:设置应用服务之间的依赖关系。
  4. 预览 页面,确认信息无误后,点击 创建
  5. 发布单详情 页面,点击 整体发布 即可开始发布。

服务监控及治理

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

容器

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

说明:当前版本仅支持 SOFA 和 Dubbo 服务的限流和路由,暂不支持 Spring Cloud 服务的限流和路由。

添加服务限流规则

如您发现服务流量过载,您可以通过添加服务限流规则进行服务限流。

  1. 在服务详情页,切换至 服务限流 页签,点击 添加限流规则
  2. 在右侧新窗口中,配置以下规则信息:
    • 规则名称:限流规则的名称
    • 应用:应用名
    • 服务:应用服务名称
    • 服务类型:应用服务的类型
    • 方法:方法名
    • 限流算法:目前仅支持扩展令牌桶算法。关于限流算法的更多信息,参见 限流规则说明 > 令牌桶算法
    • 令牌通系数:默认为 1
    • 限流阈值
      • 条件模式:目前仅支持 QPS,即根据单位时间内的请求数进行限流
      • 单位时间:打印限流日志的周期。对于单位时间内访问次数的限流条件,也表示统计周期。单位为毫秒(ms)。最小值为 1000 ms。
      • 限流阈值:即 QPS 计数值,单位时间内的请求数
      • 流量类型:限流的流量类型,目前仅支持所有流量
  3. 配置完成后,点击 提交,规则进入 新建中 状态。

如限流规则创建失败,您可以选择 重试返回修改 配置信息后重新提交。

添加服务路由规则

如果发现有服务提供者状态异常,您可以通过配置服务路由规则,切光流量。

  1. 在服务详情页,切换至 服务路由 页签,点击 添加路由规则
  2. 在右侧新窗口中,配置以下规则信息:
    • 规则名称:服务路由规则的名称
    • 应用:应用名。
    • 路由类型:目前仅支持按版本路由。
    • 分流开关:默认开启。分流开启后,如果路由目标没有机器,会主动调整到其他路由目标的可用机器上。
    • 版本权重:设置各版本权重,且需确保各版本权重和必须为 100%。
  3. 配置完成后,点击 提交
  4. 返回路由规则列表,在 状态 列启用该规则。

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

虚拟机构建模式下,您也需要先 获取中间件全局配置项,并改造已有的本地工程,接入 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. 在发布单详情看到状态 执行成功,即表示该应用已经发布成功。

服务管控

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

虚拟机