在前面随笔Spring Cloud 之 Feign的feign工程基础上进行改造

1.pom.xml依赖不变

2.application.yml文件添加feign.hystrix.enabled=true开启Hystrix断路器,即:

spring:
application:
name: feign
server:
port: 8766
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
feign:
hystrix:
enabled: true

3.新建Feign Hystrix 调用失败的回调类HystrixErrorFallBack

package com.dzpykj.hystrixService;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import com.dzpykj.feignInterface.HelloInterface; @Component
public class HystrixErrorFallBack implements HelloInterface { @Value("${server.port}")
String port; @Override
public String hello(String name) {
return "Sorry "+name+",when you are visting feign hystrix project,port:"+port+",you meet an error";
} }

4.在@FeignClient接口加入fallback回调类

package com.dzpykj.feignInterface;

import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import com.dzpykj.hystrixService.HystrixErrorFallBack; @FeignClient(value = "eurekaclient",fallback = HystrixErrorFallBack.class) //value为要负载均衡的spring.application.name
public interface HelloInterface { @RequestMapping("/hi") //负载均衡目标工程里面的哪个方法
public String hello(@RequestParam(value="name") String name);
}

5.依次启动Eureka服务集群、Eureka单个客户端、Feign工程

5.1 按照Spring Cloud Eureka Server集群Demo级搭建的步骤启动Eureka服务peer1,peer2集群

5.2按照Spring Cloud Eureka服务Demo级搭建启动8763的Eureka客户端

5.3启动Feign工程

6.访问 http://localhost:8766/hello/chaixy

7.模拟eurekaclient服务异常:手动将eurekaclient服务关闭,再次访问 http://localhost:8766/hello/chaixy

可以看到,当eurekaclient服务关闭时,访问遇到异常,回调了异常回调类HystrixErrorFallBack

Spring Cloud Feign 整合 Hystrix的更多相关文章

  1. Spring Cloud Ribbon 整合 Hystrix

    在前面随笔 Spring Cloud 之 Ribbon 的ribbon工程基础上进行改造 1.pom.xml 加入依赖 <dependency> <groupId>org.sp ...

  2. Spring Cloud Feign 声明式服务调用

    目录 一.Feign是什么? 二.Feign的快速搭建 三.Feign的几种姿态 参数绑定 继承特性 四.其他配置 Ribbon 配置 Hystrix 配置 一.Feign是什么? ​ 通过对前面Sp ...

  3. 笔记:Spring Cloud Feign Hystrix 配置

    在 Spring Cloud Feign 中,除了引入了用户客户端负载均衡的 Spring Cloud Ribbon 之外,还引入了服务保护与容错的工具 Hystrix,默认情况下,Spring Cl ...

  4. 第六章:声明式服务调用:Spring Cloud Feign

    Spring Cloud Feign 是基于 Netflix Feign 实现的,整合了 Spring Cloud Ribbon 和 Spring Cloud Hystrix,除了提供这两者的强大功能 ...

  5. SpringCloud---声明式服务调用---Spring Cloud Feign

    1.概述 1.1 Spring Cloud Ribbon.Spring Cloud Hystrix的使用几乎是同时出现的,Spring Cloud提供了一个更高层次的封装这2个工具类框架:Spring ...

  6. Spring cloud Feign 深度学习与应用

    简介 Spring Cloud Feign是一个声明式的Web Service客户端,它的目的就是让Web Service调用更加简单.Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解 ...

  7. Spring Cloud Feign高级应用

    1.使用feign进行服务间的调用 spring boot2X整合nacos一使用Feign实现服务调用 2.开启gzip压缩 Feign支持对请求与响应的压缩,以提高通信效率,需要在服务消费者配置文 ...

  8. Greenwich.SR2版本的Spring Cloud Feign实例

    前面我们了解了Spring Cloud Ribbon和Hystrix,在使用上它们基本上会成队出现,那么是不是可以把它们组合起来使用?而且我们发现,在服务消费方a-beautiful-client里通 ...

  9. 微服务实战SpringCloud之Spring Cloud Feign替代HTTP Client

    简介 在项目中我们有时候需要调用第三方的API,微服务架构中这种情况则更是无法避免--各个微服务之间通信.比如一般的项目中,有时候我们会使用 HTTP Client 发送 HTTP 请求来进行调用,而 ...

随机推荐

  1. WebService调用(基于KSOAP2)

    public static boolean getData(String param) { //WebService服务器地址 String SERVICE_URL = "http://22 ...

  2. java:利用静态字段和构造函数实现已建对象数查询

    问题:使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数. 请写一个类,在任何时候都可以向它查询"你已经创建了多少个对象?". 程序设计思想: 利用静态变量指定一个计数 ...

  3. 【前端】主流API-promise解析,js基础。

    前言 在js领域,promise出现的时间已经很久了,从jquery的$.get().done().fail() 这样的API开始,到现在的es6默认支持的new Promise(),它的出现无疑使异 ...

  4. 数据权限设计——基于EntityFramework的数据权限设计方案:一种设计思路

    前言:“我们有一个订单列表,希望能够根据当前登陆的不同用户看到不同类型的订单数据”.“我们希望不同的用户能看到不同时间段的扫描报表数据”.“我们系统需要不同用户查看不同的生产报表列”.诸如此类,最近经 ...

  5. 扩展 lua require 的行为

    扩展 lua require 的行为 来源 https://blog.codingnow.com/2015/10/lua_require_env.html 今天同事提了个需求,他希望可以给部分 lua ...

  6. 1053: [HAOI2007]反素数ant

    1053: [HAOI2007]反素数ant Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3480  Solved: 2036[Submit][St ...

  7. D3.js使用过程中的常见问题(D3版本D3V4)

    目录 一.学习D3我必须要学习好SVG矢量图码? 二.如何理解D3给Dom节点绑定数据时的Update.Enter和Exit模式 三.D3绑定数据时用datum与data有什么不一样? 四.SVG图中 ...

  8. 浅析is和as两个关键词在类型转换时的使用

    is检查对象是否兼容与指定类型,返回Boolean值true或者false,值得注意的是,在使用is进行类型转换的时候是永远不会抛出异常的,例如: object o=new Object(); Boo ...

  9. jsp静态与动态包含的区别和联系

    1. <%@ include file=” ”%>是指令元素.<jsp:include page=” ”/>是行为元素 2. 最终编译成java文件的数目不同. * 静态包含在 ...

  10. Ubuntu 共享 转载

    Ubuntu 14.04 文件服务器--samba的安装和配置 听语音 | 浏览:29526 | 更新:2014-10-10 22:28 | 标签:ubuntu 1 2 3 4 5 6 7 分步阅读 ...