SpringCloud学习笔记(11)----Spring Cloud Netflix之Hystrix断路器的使用
2024-08-31 12:51:27
为什么会有断路器?
在微服务架构中,系 是拆分成 一个的服务单元各间通过注册与发现 的方式互相依 赖。每个单元都在不同的进程中运行, 都是通过远程调用的方式进行信 ,这样就有可能因为网络原或 是依赖服务自身问题出现调用延迟或者故障 而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会因依赖方响应慢或者不响应导致调用方等待 而形成任务积压最终导 致自身服务的瘫痪。
为了解决这样的问题,因此产生断路器概念 。
2. 断路器的概念?
在分布式架构中,断路器 的作用是当某个服务单元发生故障之后,通过断路器监控向调方返回一个错误响应,而不是长时间的等待。这样就会使得线程因调用故障服务被占释放避免了故障在分布式系统中的蔓延。
Hystrix就是 具备有以上功能的应用 具备有以上功能的应用 。
3. Hystrix对Ribbon的支持
添加依赖,pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
由于 Hystrix中已经依赖了Ribbon,所以其实再引入了Hystrix之后,就看可以不用再引入Ribbon了。
使用@EnableCircuitBreaker开启断路器服务
添加注解@HystrixCommand(fallbackMethod = "toFail"),和自定义当发生断路时执行的方法。
public String toFail(int id) {
return "调用失败了....";
}
注意:fallbackMethod中的值必须与自定义方法名相同,同事,自定义方法的返回值需要与@HystrixCommand注解所在的方法的返回值一致。
4. 测试
1、 正常访问
2、 关闭提供者应用(找不到服务时触发断路器)
3、 提供者延迟5 秒 (超过一秒的响应时间触发断路器)
4、 提供者延迟0.5 秒 (能发挥调用结果)
最新文章
- Hadoop多节点集群安装配置
- Linux 中 Oracle 数据库启动和关闭
- leetcode 124. Binary Tree Maximum Path Sum
- tab左右箭头切换(修改后)
- 20145225 《Java程序设计》 第3周学习总结
- 隐马尔科夫模型HMM学习最佳范例
- mongodb学习4---索引
- Opencv 简单的图片显示
- 网络视频传输的服务质量(QoS)
- C语言处理CSV文件的方法(二)
- 找出并解决 JavaScript 和 Dojo 引起的浏览器内存泄露问题
- LeetCode OJ 88. Merge Sorted Array
- 剑指Offer--排序算法小结
- 【Android】Android取消EditText自动获取焦点
- SSM框架下,使用ajax请求上传文件(doc\docx\excel\图片等)
- 3. Longest Substring Without Repeating Characters (ASCII码128个,建立哈西表)
- C++ 推断一棵二叉树是否对称
- did not call through to super.onCreate()
- LNMP 1.2升级Nginx、MySQL/MariaDB、PHP教程
- 【Python】动态获取python类名、函数名&;多线程