检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
本文示例中部署一个comsumer端,providerA、providerB分别部署一个基线版本和一个灰度版本,样例参考spring-cloud-demo。 因为需要使用CSE下发的灰度策略,所以Sermant Agent的配置中心必须为CSE的配置中心。 因为需要使用灰度发布功能,所以在发布服务时需要增加版本
1版本,将20%流量转发到1.0.0 版本。当请求中不包含上述header的时候,将80%的流量转发到实例标签为group:green的实例,20%的流量转发到实例标签为group:red的实例。 父主题: Spring Cloud应用实现标签路由功能
ant Agent提供的全链路灰度能力,可以在不需要修改任何您的业务代码的情况下,能够轻松实现上述能力。 本文通过示例为您演示Sermant Agent全链路灰度功能。假设应用的架构由Sermant Agent以及后端的微服务架构(Spring Cloud)组成,后端调用链路:p
目前仅支持基于Spring Cloud框架开发java应用,支持的注册中心包含Eureka、Nacos、 Consul以及Zookeeper。 优雅上下线基于Spring Cloud的负载均衡实现,若有实现自定义负载均衡,该能力将会失效。 优雅上线实现机制 预热是优雅上线的核心机制,Sermant
Spring Cloud应用实现全链路灰度 概述 准备工作 灰度规则设置 结果验证 父主题: ServiceComb引擎应用治理
Agent,支持Spring Cloud应用无需任何修改接入ServiceComb引擎,当前已支持应用注册发现、配置、优雅上下线、标签路由等功能。 此功能目前处于公测阶段,当前仅在华东-上海一支持。 Sermant Agent是基于Sermant开源社区构建的、用于CSE微服务治理场景的Agent。
如果您需要收集、记录或者查询Nacos引擎和ServiceComb引擎的操作日志,需要先开通云审计服务。通过云审计服务可查看Nacos和ServiceComb引擎最近7天的操作记录,支持记录的操作日志见表1和表2。 表1 云审计服务支持的Nacos引擎操作列表 操作类型 资源类型 事件名称 创建引擎 engine
标签路由版本支持: Spring Cloud Spring Boot Spring Cloud Openfeign RestTemplate Spring Cloud Loadbalancer Spring Cloud Netflix Ribbon Spring Cloud Gateway Spring
功能介绍 在微服务存在多个版本、多个实例的情况下,需要管理服务之间的路由,达到无损升级、应用拨测等业务目的。Sermant Agent提供了标签路由的能力,标签路由通过匹配http请求头中的信息,把符合规则的流量转发到对应的标签应用中,从而实现标签路由的功能。 此功能目前处于公测阶段,当前仅在华东-上海一支持。
group: gray 服务路由策略设置说明: 请求头的id参数值精确匹配为1时,consumer的所有请求流量都是从providerA-gray流向providerB-gray。 请求头的id参数值为其他任意值,consumer的所有请求流量都是从providerA流向providerB。
与其他服务的关系 云原生架构模式下,完成业务功能需要很多服务相互配合: CSE一般和数据库、缓存和消息中间件同时使用,完成业务功能的开发。 AOM、APM、LTS等工具,则为业务提供运维能力,帮助检测业务故障、分析故障原因。 以Spring Cloud为例,典型的云原生架构和技术选型如下:
执行命令时,需要把ip替换成实际宿主机的ip,把端口替换成容器的8170端口映射到宿主机的端口,访问时,会请求到入口应用(spring-cloud-router-zuul)中。 可以得出结论,当请求头为id: 1或者id: 2时,会路由到版本为1.0.1的provider,当不满足以上条件时,会访问到版本为1
{DeploymentName}需要替换为具体的Deployment名称,{namespace}需要替换为Deployment所在的命名空间,若您不清楚DeploymentName或者NAMESPACE,可以使用以下命令查看在CCE中部署的所有Deployment,然后找到您需要接入CSE的应用的DeploymentName与NAMESPACE:
e---{name}---version---1.0.0---parameters---group:base 父主题: Spring Cloud应用实现全链路灰度
修改需要接入ServiceComb引擎的应用部署文件。 若是新建的应用需要在“创建无状态工作负载”高级设置页面单击界面右侧的“YAML创建”,具体请参考通过控制台创建无状态负载。 若是已经部署的应用需要在左侧导航栏中选择“工作负载 > 无状态负载 Deployment”,然后单击应用所属工作负载后的“更多 >
Injector的CCE集群中的节点。 把“Sermant-examples/registry-demo/dubbo-registry-demo”中的deployment文件夹上传至已登录的CCE集群中的节点上。 请参考使用容器引擎客户端上传镜像制作docker镜像,其中,使用到的Dock
解决方案 目前还没有简单方案,只能够一个表对应一个Entity,根据新版本的约束调整代码结构。 Mongo client升级变更 问题描述 MongoDbFactory的接口存在变更,需要调整为新版本的用法。 解决方案 @Bean public MappingMongoConverter
仪表盘提供一些基础的微服务运行监控能力。微服务通过SDK上报运行状态数据,上报的数据内容包括请求统计数据,比如请求数、时延、错误率等,还包括和治理有关的一些状态,比如熔断状态等。 Spring Cloud使用仪表盘,不需加入依赖,可直接使用。Spring Cloud包含如表1所示配置项,指定仪表盘上报地址等信息。
通过Helm客户端部署Sermant Injector将应用接入ServiceComb引擎 部署Spring Cloud应用 父主题: 通过Sermant Agent托管Spring Cloud应用
${endpoint}/stat 下图为某个时刻统计的调用结果: 上图中实例x.x.0.55:8009关闭了优雅上线, 实例x.x.0.51:8004开启了优雅上线,观察请求数(requestCount)与QPS,可观察到开启优雅上线的实例的QPS与请求数都小于关闭优雅上线的实例。持续观察流量请求情况,直到两个实例QPS基本持平则结束验证。