spring cloud: Hystrix(四):feign类似于hystrix的断容器功能

spring cloud: Hystrix(四):feign使用hystrix

@FeignClient支持回退的概念:fallback方法,这里有点类似于:@HystrixCommand(fallbackMethod = "notfindback")的fallbackMethod 方法。

fallback方法调用的是一个类.,feign也有:/health, /health.stream地址信息

http://192.168.1.4:7601/health

1.首先要在配置件开启hystrix配置

#feign.hystrix
feign.hystrix.enabled=true

  

或者

feign:
  hystrix:
    enabled: true

  

2.在FeignClient客户端文件添加fallback

@FeignClient(name="spring-boot-user", fallback=HystrixClientFallback.class)
public interface UserFeignClient {

	// 两个坑:1. @GetMapping不支持   2. @PathVariable得设置value
	@RequestMapping(value="/simple/{id}", method=RequestMethod.GET)
	public User findById(@PathVariable("id") Long id);

}

  

3.HystrixClientFallback友好文件(当feignClient地址不通是,默认返回本类信息)

@Component
public class HystrixClientFallback  implements UserFeignClient{

	@Override
	public User findById(Long id) {
		// TODO Auto-generated method stub
		User user = new User();
		user.setId(0L);
		return user;
	}

}

  

4.controller调用

@RestController
public class MovieController {

	@Autowired
	private UserFeignClient userFeignClient;

	@GetMapping("/movie/{id}")
	public User findById(@PathVariable("id") Long id) {
		return this.userFeignClient.findById(id);
	}

}

  

原文地址:https://www.cnblogs.com/achengmu/p/9846464.html

时间: 2024-07-31 14:05:58

spring cloud: Hystrix(四):feign类似于hystrix的断容器功能的相关文章

Spring Cloud(Dalston.SR5)--Feign 与 Hystrix 断路器整合

创建项目 要使 Feign 与 Hystrix 进行整合,我们需要增加 Feign 和 Hystrix 的依赖,修改 POM.xml 中增加以下依赖项如下: <?xmlversion="1.0"encoding="UTF-8"?> <projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-in

Spring Cloud(四):服务容错保护 Hystrix【Finchley 版】

Spring Cloud(四):服务容错保护 Hystrix[Finchley 版] 发表于 2018-04-15 |  更新于 2018-05-07 | 分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况,这种现象被称为服务雪崩效应.为了应对服务雪崩,一种常见的做法是手动服务降级.而 Hystrix 的出现,给我们提供了另一种选择. Hystrix [h?st'r?ks] 的中文含义是 "豪猪",豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与 Hy

Spring Cloud(Dalston.SR5)--Zuul 网关-Hystrix 回退

当我们对网关进行配置让其调用集群的服务时,将会执行 Ribbon 路由过滤器,该过滤器在进行转发时会封装为一个 Hystrix 命令予以执行,Hystrix 命令具有容错的功能,如果"源服务"出现问题(例如超时),那边所执行的 Hystrix 命令将会触发回退,我们需要实现 org.springframework.cloud.netflix.zuul.filters.route.ZuulFallbackProvider 接口,该接口主要需要实现 getRoute 方法 .fallbac

08 在Spring Cloud中使用Feign

Spring Cloud对Feign进行了封装,本例将演示如何在Spring Cloud中使用Feign. 1.准备SpringCloud的测试项目 测试项目主要有三个, a.spring-feign-server: Eureka的服务器项目,端口为8761: b.spring-feign-provider: 服务提供者,该项目通过在控制台输入对应的端口号启动两个实例,分别是8080和8081端口的实例,这两个实例提供如下服务 第一个地址为person/{personId}的服务,请求后返回Pe

Spring Cloud下使用Feign Form实现微服务之间的文件上传

背景 ? Spring Cloud现在已经被越来越多的公司采用了,微服务架构比传统意义上的单服务架构从复杂度上多了很多,出现了很多复杂的场景.比如,我们的产品是个app,支持第三方登录功能,在手机端调用第三方授权接口之后,返回了用户的相关信息,比如open_id,性别,头像等.这些信息我们需要保存在我们服务器上,当时针对头像是应该保存图片的url还是图片本身发生了歧义,在一番讨论之后,得出的结果是,我们需要通过url将图片下载到我们本地,然后调用我们自己的文件微服务中上传功能保存起来. 工具 I

Spring Cloud 学习 (四) Hystrix &amp; Hystrix Dashboard &amp; Turbine

在复杂的分布式系统中,可能有几十个服务相互依赖,这些服务由于某些原因,例如机房的不可靠性.网络服务商的不可靠性等,导致某个服务不可用 . 如果系统不隔离该不可用的服务,可能会导致整个系统不可用.Hystrix 提供了熔断器功能,能够阻止分布式系统中出现联动故障.Hystrix 是通过隔离服务的访问点阻止联动故障的,并提供了故障的解决方案,从而提高了整个分布式系统的弹性. 使用 Hystrix 在 Ribbon 使用 Hystrix 添加依赖包 <dependency> <groupId&

Spring Cloud构建微服务架构Hystrix监控面板

在Spring Cloud中构建一个Hystrix Dashboard非常简单,只需要下面四步: 创建一个标准的Spring Boot工程,命名为:hystrix-dashboard.编辑pom.xml,具体依赖内容如下: <parent> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-parent</artifactId> <ve

spring boot 2.0.3+spring cloud (Finchley)熔断器Hystrix

在分布式系统中服务与服务之间的依赖错综复杂,一种不可避免的情况就是某些服务会出现故障,导致依赖于他们的其他服务出现远程调度的线程阻塞.某个服务的单个点的请求故障会导致用户的请求处于阻塞状态,最终的结果是整个服务的线程资源消耗殆尽.由于服务的依赖性,会导致依赖于该故障服务的其他服务也处于线程阻塞状态,最终导致这些服务的线程资源消耗殆尽,知道不可用,从而导致整个服务系统不可用,即雪崩效应.为了防止雪崩效应,产生了熔断器模型. Hystrix是Netflix公司开源的一个项目,提供了熔断器功能,能阻止

JAVA B2B2C电子商务spring cloud分布式微服务:Hystrix依赖隔离

依赖隔离 "舱壁模式"对于熟悉Docker的读者一定不陌生,Docker通过"舱壁模式"实现进程的隔离,使得容器与容器之间不会互相影响.而Hystrix则使用该模式实现线程池的隔离,它会为每一个Hystrix命令创建一个独立的线程池,这样就算某个在Hystrix命令包装下的依赖服务出现延迟过高的情况,了解springcloud架构可以加求求:三五三六二四七二五九,也只是对该依赖服务的调用产生影响,而不会拖慢其他的服务. 通过对依赖服务的线程池隔离实现,可以带来如下优