Spring Cloud(5)——熔断器
标签:
Spring Cloud
1、简介
Hystrix熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
2、项目实例
使用Hystrix与Feign来实现服务熔断
1、UserFeignClient指定fallback类
package com.baibei.consumer.user.service;import com.baibei.common.core.api.ApiResult;import com.baibei.consumer.user.service.hystrix.UserFeignClientHystrix;import org.springframework.cloud.netflix.feign.FeignClient;import org.springframework.web.bind.annotation.*;/** * @author: 会跳舞的机器人 * @date: 2017/3/29 16:54 * @description: 用户服务调用端 */@FeignClient(name = "microservice-provider-user", fallback = UserFeignClientHystrix.class) public interface UserFeignClient { /** * 根据ID查找用户 * * @param * @return */ @RequestMapping(value = "/user/{id}", method = RequestMethod.GET) ApiResult findUserById(@PathVariable("id") Integer id); }
2、编写fallback类
package com.baibei.consumer.user.service.hystrix;import com.baibei.common.core.api.ApiResult;import com.baibei.common.core.api.ApiResultGenerator;import com.baibei.consumer.user.service.UserFeignClient;import org.apache.log4j.Logger;import org.springframework.stereotype.Component;import org.springframework.web.bind.annotation.RequestParam;/** * @author: 会跳舞的机器人 * @date: 2017/3/29 16:55 * @description:用户服务的fallback */@Componentpublic class UserFeignClientHystrix implements UserFeignClient { private Logger logger = Logger.getLogger(UserFeignClientHystrix.class); @Override public ApiResult findUserById(@RequestParam("id") Integer id) { logger.info("请求异常,进入fallback方法,接收的参数:id=" + id); return ApiResultGenerator.serviceError(null); } }
UserFeignClientHystrix需要实现UserFeignClient服务接口,并实现其方法,返回在服务无法调用的情况下需要返回的容错值。
在服务提供者正常的情况下,服务消费者进行调用能获取到正确的结果,在服务提供者down掉的情况下,消费者再进行调用就会返回fallback方法中返回的容错值。
image
作者:会跳舞的机器人
链接:https://www.jianshu.com/p/d4090fb5f2f1
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦