spring boot + feign + Hystrix 整合 (亲测有效)

spring boot + feign + Hystrix 整合,步骤如下:

  1. pom依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>3.0.6</version>
</dependency>
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId><version> 2.2.10.RELEASE</version>
</dependency>
  1. properties 开启选项
feign:client:config:default:#发起重试的时间间隔3sfeignPeriod: 3000#发起重试的最大时间间隔10s,单位毫秒feignMaxPeriod: 10000#重试次数2,如果需要重试1次,就设置为2feignMaxAttempts: 3#5s connectTimeout 和 readTimeout 必须同时配置connectTimeout: 5000readTimeout: 5000writeTimeout: 5000compression:request:enabled: trueresponse:enabled: truehttpclient:enabled: falseokhttp:enabled: truecircuitbreaker:enabled: truehystrix:command:default:execution:isolation:thread:timeoutInMilliseconds: 5000

注:这里开启选项为feign.circuitbreaker.enable=true,这是对2021年后的spring cloud版本的。 Spring Cloud CircuitBreaker 已经是独立项目了。 springcloud早期版本用下面这段配置在feign中生效:feign.hystrix.enabled=true

  1. Java code example

注意使用@EnableHystrix 和@EnableFeignClients

@EnableTransactionManagement
@EnableAspectJAutoProxy
@Configuration
@SpringBootApplication(scanBasePackages = {"cn.com.datang.test"},exclude = {ArchaiusAutoConfiguration.class})
@EnableCaching
@EnableFeignClients(basePackages = "cn.com.datang.test.rpc")
@EnableHystrix
public class TestApplication {public static void main(String[] args) {SpringApplication.run(TestApplication.class, args);}
}

业务代码

@FeignClient(name = "mytestapi",url = "${datang.mytestapi.addr}",fallbackFactory = TestApiFallbackFactory.class
)
public interface TestApi {@GetMapping(value = "/testapi")String getPersonInfo(@RequestParam(value = "appid") String appid,@RequestParam(value = "type") String type,@RequestParam(value = "id") String id);
}
@Slf4j
@Component
public class TestApiFallbackFactory implements FallbackFactory<TestApi> {@Overridepublic TestApi create(Throwable cause) {return (appid, type, id) -> {log.warn("网络调用异常,使用降级措施来处理了.异常信息:",cause);return null;};}
}

好了,到此结束,亲自有效!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/150666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

李宏毅2023机器学习作业HW05解析和代码分享

ML2023Spring - HW5 相关信息&#xff1a; 课程主页 课程视频 Sample code HW05 视频 HW05 PDF 个人完整代码分享: GitHub | Gitee | GitCode 运行日志记录: wandb P.S. HW05/06 是在 Judgeboi 上提交的&#xff0c;完全遵循 hint 就可以达到预期效果。 因为无法在 Judgeboi 上…

单页面应用(SPA)与多页面应用(MPA)的区别及优缺点

单页面应用&#xff08;SPA&#xff09;和多页面应用&#xff08;MPA&#xff09;是两种常见的Web应用程序架构&#xff0c;它们在设计和使用上有一些显著的区别。 单页面应用&#xff08;SPA&#xff09; 定义&#xff1a;单页面应用是指整个应用只有一个完整的页面&#xf…

Vue3 源码解读系列(八)——生命周期

生命周期 正常的生命周期 // 注册钩子函数 const onBeforeMount createHook(bm/* BEFORE_MOUNT */) const onMounted createHook(m/* MOUNTED */) const onBeforeUpdate createHook(bu/* BEFORE_UPDATE */) const onUpdated createHook(u/* UPDATED */) const onBeforeUnm…

商城免费搭建之java商城 java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

java桌面程序

目标之一是把打印导出的功能最终用java实现一套&#xff0c;首先选定javafx&#xff0c;因为idea默认创建工程就带的javafx&#xff0c;没找到swing。 创建工程&#xff0c;这里要选1.8&#xff0c;高版本jdk默认不带fx 实现主界面的代码 package sample;import javafx.app…

spring boot集成quartz

目录 1.定时任务实现 2.quartz说明 3.存储方式 4.示例 5.定时任务的重新定制&#xff0c;恢复&#xff0c;暂停及删除 1.定时任务实现 定时任务的实现方式有很多&#xff0c;如下&#xff1a; 1.启动类中添加EnableScheduling&#xff0c;开启定时任务功能&#xff0c;然…

将word中的表格无变形的弄进excel中

在上篇文章中记录了将excel表拷贝到word中来&#xff1a; 记录将excel表无变形的弄进word里面来-CSDN博客 本篇记录&#xff1a;将word中的表格无变形的弄进excel中。 1.按F12&#xff0c;“另存为...”&#xff0c;保存类型&#xff1a;“单个文件页面”&#xff0c;保存。…

numpy报错:AttributeError: module ‘numpy‘ has no attribute ‘float‘

报错&#xff1a;AttributeError: module numpy has no attribute float numpy官网&#xff1a;NumPy 报错原因&#xff1a;从numpy1.24起删除了numpy.bool、numpy.int、numpy.float、numpy.complex、numpy.object、numpy.str、numpy.long、numpy.unicode类型的支持。 解决办法…

如果K8s出现问题,你可以从这9个方面排查

K8s问题的排查 1. POD启动异常、部分节点无法启动pod 2. 审视集群状态 3. 追踪事件日志 4. 聚焦Pod状态 5. 检查网络连通性 6. 审视存储配置 7. 研究容器日志 8. K8S集群网络通信 9. 问题&#xff1a;Service 是否通过 DNS 工作&#xff1f; 10. 总结 1. POD启动异常、…

JS中字符串与ASCII码相互转换,前端如何解决秘钥非明文存储

最近遇到一个问题&#xff0c;就是项目组要求秘钥等信息不能明文写在文件里&#xff0c;但是前端有时候是无法避免要写的&#xff0c;像有些加密方法需要和后端匹配的秘钥&#xff0c;后面组里的同事提出&#xff0c;可以将字符串转换成ASCII码再加上其他的调整&#xff0c;比如…

Java-方法的重写

【1】重写&#xff1a; 发生在子类和父类中&#xff0c;当子类对父类提供的方法不满意的时候&#xff0c;要对父类的方法进行重写。 【2】重写有严格的格式要求&#xff1a; 子类的方法名字和父类必须一致&#xff0c;参数列表&#xff08;个数&#xff0c;类型&#xff0c…

Django 入门学习总结4

视图是Django应用程序在Python语言中提供特定的方法并对应于有特定的模板的网页。网页的页面通过视图的方式进行跳转。 在投票系统中&#xff0c;有四个视图&#xff1a; 首页视图&#xff0c;显示最新的问题列表。细节视图&#xff0c;显示问题文本&#xff0c;通过表单可以…

阿里国际站(直通车)

1.国际站流量 2.直通车即P4P&#xff08;pay for performance点击付费&#xff09; 2.1直通的含义&#xff1a;按点击付费&#xff0c;通过自助设置多维度展示产品信息&#xff0c;获得大量曝光吸引潜在买家。 注意&#xff1a;中国大陆和尼日利尼地区点击不扣费。 2.2扣费规…

Apache Doris (五十四): Doris Join类型 - Bucket Shuffle Join

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录

Python的机器学习库:Sklearn库

随着机器学习的发展&#xff0c;各种强大的机器学习库涌现出来&#xff0c;使开发人员能够更轻松地构建和应用机器学习模型。其中&#xff0c;Scikit-learn&#xff08;简称Sklearn&#xff09;作为Python中最受欢迎和广泛使用的机器学习库之一&#xff0c;提供了丰富的功能和算…

linux结束 java jar

要在 Linux 中终止正在运行的 Java 进程&#xff0c;首先需要找到该进程的进程 ID&#xff08;PID&#xff09;。你可以使用 ps 命令来列出正在运行的进程&#xff0c;并通过 grep 命令过滤出与 Java 相关的进程。以下是一些可能的方法&#xff1a;### 方法 1&#xff1a;使用 …

/etc/environment,/etc/profile区别

/etc/environment 和 /etc/profile 是 Linux 系统中用于定义环境变量和启动脚本的两个不同的配置文件。它们的作用和应用场景有所区别&#xff1a; /etc/environment&#xff1a; 这是系统范围内的环境配置文件。它是由 PAM (Pluggable Authentication Module) 模块读取的&…

vue+element实现多级表头加树结构

标题两种展示方式 方式一 完整代码: <template><div class"box"><el-tableref"areaPointTable":data"tableData"border:span-method"objectSpanMethod":header-cell-style"tableHeaderMerge"><el-ta…

mac中安装Homebrew

1、Homebrew是什么&#xff1f; 软件安装管理工具 2、先检查电脑中是否已经安装了Homebrew 打开终端输入&#xff1a;brew 提示命令没有找到&#xff0c;说明电脑没有安装Homebrew 如果提示上述图片说明Homebrew已经安装成功 3、安装Homebrew 进入https://brew.sh/ 复制的命…

基于多种设计模式重构代码(工厂、模板、策略)

基于多种设计模式重构代码 现状 系统目前支持三种业务流程&#xff0c;业务A&#xff0c; 业务B&#xff0c;业务C&#xff0c;每个流程有相同的业务逻辑&#xff0c;也包含很多的特性化业务。由于之前业务流程的开发是快速迭代的&#xff0c;而且迭代了很多次&#xff0c;开发…