springcloud feign集成hystrix
本章介绍feign集成hystrix
1、增加pom依赖`
<dependency>
<groupid>org.springframework.cloud</groupid>
<artifactid>spring-cloud-starter-netflix-hystrix</artifactid>
</dependency>
2、启动类中增加注解@EnableHystrix
3、增加feign接口fallback以及相关配置
DemoService
@ConditionalOnProperty(name = "app.host.abcurl")
@FeignClient(value = "demo-service", url = "${app.host.abcurl}" ,fallback = DemoServiceFallbackImpl .class)
public interface DemoService {
@GetMapping("/v1/api/getCateData")
ApiResponse<page<object>> getCateData(@RequestParam Map<string,string> params);
@GetMapping("/v1/api/getProductData")
ApiResponse<page<detail>> getProductData(@RequestParam Map<string,string> params);
}
DemoServiceFallbackImpl
@Slf4j
@Component
public class DemoServiceFallbackImpl implements DemoService {
@Override
public ApiResponse<page<object>> getCateData (Map<string, string> params) {
log.warn("DemoServiceFallbackImpl getCateData fail");
return null;
}
@Override
public ApiResponse<page<detail>> getProductData(Map<string, string> params) {
log.warn("DemoServiceFallbackImpl getProductData fail");
return null;
}
}
3、增加yml相关配置
feign:
httpclient:
enabled: true
hystrix:
enabled: true
hystrix:
command:
default:
execution:
timeout:
enabled: true
isolation:
thread:
timeoutInMilliseconds: 1000 //该配置需要比ribbon超时时间长
circuitBreaker:
requestVolumeThreshold: 1000
threadpool:
default:
coreSize: 60
maxQueueSize: 200
queueSizeRejectionThreshold: 200
ribbon:
ReadTimeout: 500
ConnectTimeout: 500
ExecTimeout: 500
MaxAutoRetries: 1 //最好设置超时重试
这里如果需要查看hystrix监控,可以集成Hystrix Dashboard,详情参考
https://blog.csdn.net/u013408188/article/details/100074111
下图是我集成grafana 、prometheus的监控图


</string,></page<detail></string,></page<object></string,string></page<detail></string,string></page<object>
springcloud feign集成hystrix的更多相关文章
- SpringCloud Feign对Hystrix(断路由)的支持
第一步:首先开启Feign对Hystrix的支持,在properties文件中添加以下配置: feign.hystrix.enabled=true. 第二步:在上一篇Feign的基础上添加Hystri ...
- spring cloud 2.x版本 Feign服务发现教程(内含集成Hystrix熔断机制)
前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server和eureka-client的实现. 参考 ...
- SpringCloud——Eureka Feign Ribbon Hystrix Zuul等关键组件的学习与记录
SpringCloud--Eureka Feign Ribbon Hystrix Zuul等关键组件的学习与记录 前言:本篇是对近日学习狂神SpringCloud教程之后的感想和总结,鉴于对Sprin ...
- springcloud微服务实战:Eureka+Zuul+Feign/Ribbon+Hystrix Turbine+SpringConfig+sleuth+zipkin
相信现在已经有很多小伙伴已经或者准备使用springcloud微服务了,接下来为大家搭建一个微服务框架,后期可以自己进行扩展.会提供一个小案例: 服务提供者和服务消费者 ,消费者会调用提供者的服务,新 ...
- springcloud(九)-Feign使用Hystrix
前言 上一篇我们使用注解@HystrixCommond的fallbackMethod属性实现回退.然而,Feign是以接口形式工作的,它没有方法体,上一篇讲解的方式显然不适用于Feign. 那么Fei ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_5-04 feign结合hystrix断路器开发实战下
笔记 4.Feign结合Hystrix断路器开发实战<下> 简介:讲解SpringCloud整合断路器的使用,用户服务异常情况 1.feign结合Hystrix ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_5-03 feign结合hystrix断路器开发实战上
笔记 3.Feign结合Hystrix断路器开发实战<上> 简介:讲解SpringCloud整合断路器的使用,用户服务异常情况 1.加入依赖 注意:网上新旧版本问 ...
- SpringCloud系列十六:Feign使用Hystrix
1. 回顾 上文讲解了使用注解@HystrixCommand的fallbackMethod属性实现回退.然而,Feign是以接口形式工作的, 它没有方法体,前文讲解的方式显然不适用与Feign. 事实 ...
- SpringCloud(五)之Spring Cloud 中 Feign结合Hystrix断路器开发实战
1.先讲hystrx(断路器) 在springcloub 中的使用 1.1 加入依赖 注意:网上新旧版本问题,所以要以官网为主,不然部分注解会丢失最新版本 2.0 <dependency> ...
- SpringCloud中使用Hystrix
1. 引言 一般而言,一个服务都是部署了多台机器的,那么在这种情况下,当其中一个服务挂了以后Hystrix是怎么处理的呢? 为了验证这个问题,我们准备两个服务:user-api 和 app-gate ...
随机推荐
- scab2
package com.cmb.cox.utils;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;im ...
- 【动手学深度学习】第五章笔记:层与块、参数管理、自定义层、读写文件、GPU
为了更好的阅读体验,请点击这里 由于本章内容比较少且以后很显然会经常回来翻,因此会写得比较详细. 5.1 层和块 事实证明,研究讨论"比单个层大"但"比整个模型小&quo ...
- EMQX配置ssl/tls双向认证+SpringBoot项目整合MQTT_真实业务实践
一.使用docker搭建Emqx 1.拉取emqx镜像 docker pull emqx/emqx:5.7 2.运行 docker run -d --name emqx emqx/emqx:5.7 3 ...
- Java模拟高并发测试
线程类,设置有一个公共资源 package cn.org.chris.concurrent; import java.util.concurrent.locks.Lock; import java.u ...
- centos如何统计磁盘使用总量,以及cpu使用率
剩余硬盘容量 T: df | awk '{print $4}' |sed 's/Available//g' |sed '/^\s*$/d' | awk '{sum+=$1} END {print su ...
- 攻防世界——CRYPTO新手练习区解题总结<1>(1-4题)
第一题base64: 下载附件,得到一个txt文件,打开 得到一串乱码,由题目可知,是base64,解码得到flag 第二题Caesar: 下载附件得到乱码 oknqdbqmoq{kag_tmhq_x ...
- Qt中全局变量的定义和使用
全局变量的定义 现在需要将自定义的STRParameter变量定义为全局变量,就需要新建两个文件,分别命名为"global.h"和"global.cpp" 在g ...
- SpringBoot实现RequestBodyAdvice和ResponseBodyAdvice接口
Spring Boot 提供了一种机制,允许开发者在请求体(RequestBody)和响应体(ResponseBody)被处理之前和之后执行自定义逻辑.这通过 RequestBodyAdvice 和 ...
- Oracle自定义数据类型
1 CREATE OR REPLACE FUNCTION split(p_str IN clob, 2 p_delimiter IN VARCHAR2 default (',') --分隔符,默认逗号 ...
- SpringBoot 1.x 2.x配置文件指定服务项目名
SpringBoot版本1.x: server.context-path=/demo SpringBoot版本2.x: server.servlet.context-path=/demo