前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >组件分享之后端组件——基于Java的分布式系统的延迟和容错组件(熔断组件)Hystrix

组件分享之后端组件——基于Java的分布式系统的延迟和容错组件(熔断组件)Hystrix

作者头像
cn華少
发布2022-06-12 12:59:27
3440
发布2022-06-12 12:59:27
举报
文章被收录于专栏:IT综合技术分享IT综合技术分享

组件分享之后端组件——基于Java的分布式系统的延迟和容错组件(熔断组件)Hystrix

背景

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

组件基本信息

内容

本节我们分享一个基于Java的分布式系统的延迟和容错组件(熔断组件)HystrixHystrix是一个延迟和容错库,旨在隔离对远程系统、服务和第 3 方库的访问点,停止级联故障并在故障不可避免的复杂分布式系统中实现弹性。

它可以做到什么? 1)延迟和容错 停止级联故障。回退和优雅降级。失败快,恢复快。 使用断路器进行线程和信号量隔离。 2) 实时操作 实时监控和配置更改。观察服务和财产变化在整个车队中传播时立即生效。 在几秒钟内收到警报、做出决定、影响变化并看到结果。 3) 并发 并行执行。并发感知请求缓存。通过请求折叠自动批处理。

我们在程序中使用也是比较简单的,只需要实现一下HystrixCommand<String>的Run方法即可,具体如下:

1、maven包引入

代码语言:javascript
复制
<dependency>
    <groupId>com.netflix.hystrix</groupId>
    <artifactId>hystrix-core</artifactId>
    <version>x.y.z</version>
</dependency>

2、继承实现

代码语言:javascript
复制
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、使用

代码语言:javascript
复制
String s = new CommandHelloWorld("Bob").execute();
Future<String> s = new CommandHelloWorld("Bob").queue();
Observable<String> s = new CommandHelloWorld("Bob").observe();

更多示例和信息可以在如何使用部分中找到。

示例源代码可以在hystrix-examples模块中找到。

更多说明参见:WikiJavadoc

知识共享许可协议

本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 组件分享之后端组件——基于Java的分布式系统的延迟和容错组件(熔断组件)Hystrix
    • 背景
      • 组件基本信息
        • 内容
          • 1、maven包引入
          • 2、继承实现
          • 3、使用
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档