- 组件分享之后端组件——基于Java的分布式系统的延迟和容错组件(
- 组件分享之后端组件——一个基于Golang的ORC组件包
- 组件分享之后端组件——基于Golang的系统和服务监控系统pro
- 组件分享之后端组件——基于Golang的访问控制库casbin
- 组件分享之Java组件——springboot各种使用demo大
- 组件分享之后端组件——基于Gin + Vue + Element
- 组件分享之后端组件——用于社交和实时游戏和应用程序的分布式服务器
- 组件分享之后端组件——基于Go语言的HTML和CSS网站生成器H
- 组件分享之后端组件——基于Golang的SQL解析器sqlpar
- 组件分享之后端组件——基于Golang的数据库集群系统vites
组件分享之后端组件——基于Java的分布式系统的延迟和容错组件(熔断组件)Hystrix
背景
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
组件基本信息
内容
本节我们分享一个基于Java的分布式系统的延迟和容错组件(熔断组件)Hystrix,Hystrix是一个延迟和容错库,旨在隔离对远程系统、服务和第 3 方库的访问点,停止级联故障并在故障不可避免的复杂分布式系统中实现弹性。
它可以做到什么?
1)延迟和容错
停止级联故障。回退和优雅降级。失败快,恢复快。
使用断路器进行线程和信号量隔离。
2) 实时操作
实时监控和配置更改。观察服务和财产变化在整个车队中传播时立即生效。
在几秒钟内收到警报、做出决定、影响变化并看到结果。
3) 并发
并行执行。并发感知请求缓存。通过请求折叠自动批处理。
我们在程序中使用也是比较简单的,只需要实现一下HystrixCommand<String>的Run方法即可,具体如下:
1、maven包引入
<dependency>
<groupId>com.netflix.hystrix</groupId>
<artifactId>hystrix-core</artifactId>
<version>x.y.z</version>
</dependency>
2、继承实现
public class CommandHelloWorld extends HystrixCommand<String> {
private final String name;
public CommandHelloWorld(String name) {
super(HystrixCommandGroupKey.Factory.asKey("ExampleGroup"));
this.name = name;
}
@Override
protected String run() {
return "Hello " + name + "!";
}
}
3、使用
String s = new CommandHelloWorld("Bob").execute();
Future<String> s = new CommandHelloWorld("Bob").queue();
Observable<String> s = new CommandHelloWorld("Bob").observe();
更多示例和信息可以在如何使用部分中找到。
示例源代码可以在hystrix-examples模块中找到。
本文声明:
![](https://img.haomeiwen.com/i5330898/f850ba900a8955ff.png)
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
网友评论