检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
与其他服务的关系 云原生架构模式下,完成业务功能需要很多服务相互配合: CSE一般和数据库、缓存和消息中间件同时使用,完成业务功能的开发。 AOM、APM、LTS等工具,则为业务提供运维能力,帮助检测业务故障、分析故障原因。 以Spring Cloud为例,典型的云原生架构和技术选型如下:
仪表盘提供一些基础的微服务运行监控能力。微服务通过SDK上报运行状态数据,上报的数据内容包括请求统计数据,比如请求数、时延、错误率等,还包括和治理有关的一些状态,比如熔断状态等。 Spring Cloud使用仪表盘,不需加入依赖,可直接使用。Spring Cloud包含如表1所示配置项,指定仪表盘上报地址等信息。
创建微服务静态信息 功能介绍 在注册微服务实例前需要创建服务静态信息,之后注册的微服务实例根据serviceId这个字段与静态信息关联,一个服务对应对多个实例。 serviceId可以定制。如果定制了,系统将使用定制的serviceId;如果没有定制,系统会随机生成serviceId。
治理微服务 微服务部署完后,您可以根据微服务的运行情况进行微服务的治理。 前提条件 您可以先在“微服务目录 > 微服务列表”中创建微服务,启动微服务后,根据yaml文件的配置,会在对应的服务下注册服务实例。 如果没有事先创建微服务或者微服务已删除,在注册服务实例时会自动创建微服务。
查询服务providers 功能介绍 根据consumer_id获取该服务的所有providers,比如A->B、A->C。那么根据A的服务Id,可以查询到B、C的微服务信息。 URI GET /v4/{project_id}/registry/microservices/{co
Spring boot从 2.0.x.RELEASE升级到2.3.x.RELEASE兼容性问题 FeignClient名问题 问题描述 老版本的Spring Boot允许bean重名覆盖,新版本默认不允许,需要通过配置项启用。 解决方案 增加配置: spring: main:
限流规则借鉴了Resilience4j的思想,作用在服务端,其原理为:每隔limitRefreshPeriod的时间会加入rate个新许可,就可以最多接受rate个请求,超过的将被限流,返回响应码429。 Java Chassis的限流作用于微服务提供者,需要微服务应用集成流量控制模块,启用qps-
用户在consumer端使用故障注入,可以设置发往指定微服务的请求的时延和错误及其触发概率用来在业务高峰期时保护核心业务只被关键微服务访问。 Spring Cloud Huawei暂不支持错误注入治理策略。 Java Chassis错误注入治理是作用于微服务消费者,需要微服务应用集成错误注入模块,启用fa
降级 降级治理是在业务高峰期时,需要临时减少对于目标服务的访问,达到降低目标服务负载;或者屏蔽对于非关键服务的访问,保持本服务的核心处理能力的治理措施。 Java Chassis降级治理是作用于微服务消费者,需要微服务应用集成降级模块,启用bizkeeper-consumer处理链。
详细说明请参考流量特征治理。 此处以微服务开发框架Java Chassis 2.x版本为例介绍。3.x版本配置详情请参考流量特征治理。 Spring Cloud通过Aspect拦截RequestMappingHandlerAdapter实现了容错,集成Spring Cloud Huawei以后,默
C一致。 迁移本质上是注册中心、配置中心地址的切换,切换前,所有服务注册到旧的微服务引擎;切换后,所有服务注册到新的微服务引擎;切换过程中,部分微服务注册到新引擎,部分微服务注册到旧引擎,这两部分的微服务无法进行服务发现和调用,可能导致业务不可用。 确认部署方式,如果使用Serv
详细说明请参考流量特征治理。 此处以微服务开发框架Java Chassis 2.x版本为例介绍。3.x版本配置详情请参考流量特征治理。 Spring Cloud Huawei通过Aspect拦截RequestMappingHandlerAdapter实现了熔断,集成Spring Cloud Huawei
隔离是一种异常检测机制,常用的检测方法是请求超时、流量过大等。一般的设置参数包括超时时间、同时并发请求个数等。 Java Chassis的隔离作用于微服务消费者,需要微服务应用集成隔离模块,启用bizkeeper-consumer处理链。 配置如下: servicecomb: handler:
</dependency> Spring Cloud Huawei负载均衡规则使用了Spring Cloud里面Ribbon的思想,作用在客户端,其原理为:当使用随机规则时,客户端会在下游微服务实例中随机访问一个实例,当使用轮询规则时,客户端会在下游微服务实例中按顺序循环选择Server。
huaweicloud</groupId> <artifactId>spring-cloud-starter-huawei-governance</artifactId> </dependency> Spring Cloud是基于REST的框架,能比较好的符合流量特征治理的匹配语义,apiPa
使用微服务仪表盘 您可以通过仪表盘实时查看微服务运行相关的指标,根据丰富实时的仪表盘数据,对微服务做相应的治理动作。 当ServiceComb引擎为1.x或2.4.0及以上版本时,支持此功能。 当使用Spring Cloud Huawei框架接入时,仪表盘上暂不支持查看中位数时延、90th时延、99th时延。
把符合规则的流量转发到对应的标签应用中,从而实现标签路由的功能。 Spring Cloud应用实现全链路灰度 在微服务架构下,有些开发需求会使微服务调用链路上的多个微服务同时发生了改动,通常每个微服务都会有灰度环境或分组来接收灰度流量。此时希望通过进入上游灰度环境的流量,也能进入
认证,但微服务组件配置了安全认证账号名和密码,引擎会对微服务组件配置的账号进行校验。 Spring Cloud微服务组件配置安全认证账号名和密码 配置文件配置方式 为微服务的“bootstrap.yml”文件增加以下配置,若已配置请忽略。 spring: cloud:
获取配置失败 问题现象 微服务在接入相应的微服务开发框架(如spring-cloud-huawei、java-chassis)后,微服务通过SDK调用查询配置接口到ServiceComb引擎获取配置项失败。 问题原因 微服务与注册中心间的连接因网络、CPU等其他因素发生抖动时,可能会导致请求异常。
} 上面简单的介绍了自定义开发。对于更加深入的使用方式,也可以直接参考Java Chassis、Spring Cloud项目中的默认实现代码。 父主题: 使用服务治理