5.1 Feign和Ribbon的区别#
- Application注解
- Ribbon使用@RibbonClient
- Feign使用@EnableFeignClients
- 服务的指定
- Ribbon在@RibbonClient注解上声明
- Feign在接口中使用@FeignClient声明
- 服务的调用
? Feign基于Ribbon进行改进 , 采用接口的方式 , 将需要调用的服务的方法定义成抽象方法
5.2 Feign的使用#Consumer应用
启动类
@EnableFeignClients@EnableDiscoveryClient@SpringBootApplicationpublic class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ChannelApplication.class, args);}}为了调用Product应用服务的接口类@FeignClient(value = https://www.isolves.com/it/cxkf/kj/2022-04-18/"Product")public interface ProductService {@RequestMapping(value ="/user/selectById", method = RequestMethod.GET)User selectById(@RequestParam(value = "id") Long id);}Product应用controller
@RequestMapping("/user")@RestControllerpublic class ProductController {@RequestMapping(value =https://www.isolves.com/it/cxkf/kj/2022-04-18/"selectById", method = RequestMethod.GET)User selectById(@RequestParam(value = "id") Long id){return "";}}6 、Hystrix 熔断#? Hystrix是一个服务容错与保护的组件 , 用于服务降级、服务熔断、服务限流等等 , 能够保证在其中一个服务出现问题的时候 , 不会出现级联故障 , 防止雪崩 , 提高分布式服务的健壮性 。服务雪崩:微服务之间进行调用的时候 , 服务F同时被多个服务A、B、C、D调用 , 此时服务F发生故障(响应时间过长或者不可用等) , 对于服务ABCD的调用会占用越来越多的系统资源 , 引起系统整体的崩溃 。6.1 服务降级#? 将某些服务停掉会i这不进行业务处理 , 释放资源来维持主要服务的功能 。
也就是说一个微服务的失败会引发整个系统的崩溃 , 像雪崩一样 。
6.1.1 使用场景:
- 服务器压力剧增 , 为了保证核心业务的正常运行 , 对于一些不重要的服务进行有策略地不处理或者简单处理 , 保证不会和核心业务抢占资源
- 某些服务不可用时 , 为了避免长时间的等待造成服务的卡顿雪崩 , 调用该服务时执行备用的降级逻辑 , 返回友好的提示 , 保障主题业务不受故障影响
- 接口拒绝服务:页面可以访问 , 进行增删改时提示服务器繁忙
- 页面拒绝服务:页面提示繁忙他 , 跳转到其他静态页面
- 延迟持久化:涉及增删改时提示稍后查看结构 , 不立即处理 , 将数据添加到异步队列 , 服务器空闲时处理
- 随机拒绝服务:随机拒绝用户的访问 , 用户体验差 , 较少采用
? 为了应对某个服务故障的情况 , 保证系统的整体可用性 , 熔断器会切断对该服务的请求 , 返回一个比较友好的错误响应 , 直到服务恢复正常
6.2.1 三种状态? 熔断机制的三种状态:
- 熔断关闭状态:业务正常访问时 , 熔断器关闭 , 服务可以正常调用
- 熔断开启状态:服务调用出错率达到阈值 , 开启熔断 , 对该服务的所有请求将会被切断 , 执行降级方法
- 半熔断状态:服务开启一段时间后进入半熔断状态 , 尝试恢复服务的调用 , 允许部分请求的调用并同时进行监控 , 如果成功率达到预期 , 则关闭熔断器 , 恢复服务的正常调用 , 否则开启熔断 。
- 当服务出现故障使得服务的调用失败率达到一个阈值 , 熔断器开启
- 在熔断器开启时 , 对该服务的调用会转向设置的fallback降级方法 , 防止雪崩
推荐阅读
- 简述C语言的三个标准:ANSI/ISO C99 C11
- 蒙特卡洛树搜索入门教程
- 新手使用mac电脑教程?mac电脑新手入门教程?
- C++基础入门
- 网络工程师快速入门---网络架构及传输介质详解
- 怎么开网店新手入门 自己如何开网店详细步骤
- grpc的入门使用
- 可以秒杀全场的SpringCloud微服务电商实战项目,文档贼全
- 简述淘宝网店的流量来源有哪些渠道 淘宝的流量来源
- 使用Clover安装macOS入门指南
