您的位置:首页 > Web前端

浅谈Ribbon负载均衡策略,feign和降级熔断

2018-11-18 22:33 691 查看

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”里面的方法,而不是直接出现错误
正常调用,页面显示
出现熔断页面显示

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐