浅谈Ribbon负载均衡策略,feign和降级熔断
1、Ribbon
1)先获取已经注册到Eureka上面的服务列表信息
2)通过策略选择其中一个节点(默认为轮询策略)
3)返回给restTemplate调用
@LoadBalanced 负载均衡策略
可以通过配置文件自定义策略:product-server.ribbon.NFLoadBalancerRuleClassName:com.netflix.loadbalancer.RandomRule
2、feign
1)添加依赖
《dependency》
《groupId》org.springframework.cloud《/groupId》
《artifactId》spring-cloud-starter-openfeign《/artifactId》
《/dependency》
2) 启动类添加注解@EnableFeignClients
3)创建一个接口,接口添加@FeignClient(name = “product-server(调用服务在注册中心的名字)”)
4)方法上添加@GetMapping("/findById"),完整的url
注意:1、路径一致
2、多个参数需要使用@RequestParam区分
3、如果用类传参数(@RequestBody),需要修改GetMapping为PostMapping
3、降级熔断
发生情况:系统负载过高,突发流量 或者网络异常等
a、熔断和降级
1、熔断:微服务相互调用时,某个服务突然挂掉,会标记该服务为不可用并暂时停止调用,之后会尝试调用,如果正常运行则调用,否则则继续停用
2、降级:主动抛弃一些非必要的数据
3、熔断和降级交集
相同点:1)从可用性和可靠性出发,防止系统崩溃
2)最终让用户体验到的事某些功能暂时不能用
不同点:1)熔断一般是由下游服务故障导致的,而服务降级一般是从整体系统负荷考虑,由调用方控制
b、熔断Hystrix
1、调用方添加依赖:
《dependency》
《groupId》org.springframework.cloud《/groupId》
《artifactId》spring-cloud-starter-netflix-hystrix《/artifactId》
《/dependency》
2、启动类添加注解 @EnableCircuitBreaker
3、需要熔断的方法上添加 @HystrixCommand(fallbackMethod = “errsave”),添加errsave方法,注意参数和返回类型与正确调用的方法一致
4、如果发生被调用方服务异常,则会执行“errsave”里面的方法,而不是直接出现错误
正常调用,页面显示
出现熔断页面显示
- Ribbon负载均衡策略配置
- Ribbon 负载均衡策略配置
- SpringCloud(第 007 篇)电影微服务,使用定制化 Ribbon 在客户端进行负载均衡,使用 RibbonClient 不同服务不同配置策略
- [分布式会话]zuul通过Ribbon配置负载均衡策略实现粘性会话(sticky session)
- SpringCloud | Feign如何整合Ribbon进行负载均衡的?
- SpringCloud(第 015 篇)电影Ribbon微服务集成Hystrix增加隔离策略控制线程数或请求数来达到熔断降级的作用
- 浅谈SpringCloud (三) Ribbon负载均衡
- SpringCloud(第 007 篇)电影微服务,使用定制化 Ribbon 在客户端进行负载均衡,使用 RibbonClient 不同服务不同配置策略
- SpringCloud(第 015 篇)电影Ribbon微服务集成Hystrix增加隔离策略控制线程数或请求数来达到熔断降级的作用
- 【夯实Spring Cloud】Spring Cloud中自定义Ribbon负载均衡策略
- SpringCloud(第 015 篇)电影Ribbon微服务集成Hystrix增加隔离策略控制线程数或请求数来达到熔断降级的作用
- spring cloud中Ribbon自定义负载均衡策略
- Ribbon负载均衡策略与自定义配置
- 【SpringCloud】Netflix源码解析之Ribbon:负载均衡策略的定义和实现
- java B2B2C Springcloud电子商城系统-Ribbon负载均衡策略配置
- Spring Cloud微服务开发笔记5——Ribbon负载均衡策略规则定制
- SpringCloud(第 007 篇)电影微服务,使用定制化 Ribbon 在客户端进行负载均衡,使用 RibbonClient 不同服务不同配置策略
- Ribbon负载均衡策略配置
- 负载均衡之feign与ribbon的比较
- Java后端爱上SpringCloud 第二节:内部负载均衡 Ribbon和Feign