当前位置: 首页 > news >正文

Spring Cloud技术栈还没有学完!Hystrix又双叒叕停止更新了!

作者:徐刘根 | 微信公众号 :Java后端技术(ID:JavaITWork)

今天无意间翻了一下Hystrix代码仓库,无意间看到最近的一条变更,竟然发现Hystrix也不再进行活跃的更新了,停止开发新功能了!后期只是进行维护了!!!

这是继Eureka之后又一个停止更新的Spring Cloud配套技术!

可悲的是Spring Cloud技术栈的这么多组件还没学完,一个接一个的都不再继续活跃的更新了!突然感觉没得学了(ps:手动滑稽)!

求求你们别停止更新了!我还能学!我还要学!

一、首先Hystix是什么?

Hystrix对应的中文名字是“豪猪”,豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与Hystrix本身的功能不谋而合,因此Netflix团队将该框架命名为Hystrix,并使用了对应的卡通形象做作为logo,如下所示:

所谓的熔断机制和日常生活中见到电路保险丝是非常相似的,当出现了问题之后,保险丝会自动烧断,以保护我们的电器, 那么如果换到了程序之中呢?

在一个分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等。如何能够保证在一个依赖出问题的情况下,不会导致整体服务失败,这个就是Hystrix需要做的事情。

Hystrix提供了熔断、隔离、Fallback、Cache、监控等功能,能够在一个或多个依赖同时出现问题时保证系统依然可用。

当现在服务的提供方出现了问题之后整个的程序将出现错误的信息显示,而这个时候如果不想出现这样的错误信息,而希望替换为一个错误时的内容。

一个服务挂了后续的服务跟着不能用了,这就是雪崩效应!

二、Hystrix停止更新啦!

Hystrix后期不再进行新功能的更新的通知是在9天前的时候,如下是变更的README.md内容:

Hystrix相应的官方介绍相应的变成了如下内容:

重点就是上边这句话

官方说明最后的一个Release版本v1.5.18已经足够的稳定,足以胜任我们现在已经存在系统的需求,话虽这么说,但用着总有点很不舒服,就像前段时间停止开发的Eureka一样,很多国内的中小公司,没有技术能力更新维护的,基本也都在找替代的技术方案,相继的转向Consul、ZooKeeper、Etcd 等开源中间件上去了。

Hystrix的1.0.0版本,于2012年11月22发布

Hystrix的最后一个版本,2018年11月

六年的时间说散就散,还来不及学一下原理,就不更新了!一声惋惜,几声叹息!

三、Hystrix官方推荐的替代产品

尽管如此,Hystrix并没有完全的放弃我们这些伸手党,Hystrix官方同时也推荐我们使用新一代熔断器神器Resilience4j。

GitHub地址:

https://github.com/resilience4j/resilience4j

作为新一代的熔断器,Resilience4j有很多优势,比如轻量级、依赖少、模块化程度较好、函数式编程等优势。

Resilience4j官方简介

说起模块化程度更好这一点,确实不得不佩服Resilience4j,看下代码结构对比就可以看出来了,看起来舒服多了,对比如下:

代码结构对比,左侧为Hystrix,右侧为Resilience4j

关于Resilience4j的使用指南,准备后期写一篇文章探讨一下,敬请期待!

四、Spring Cloud该何去何从?

Spring Cloud生态正经历着一些变化,前有Eureka闭源,后有Hystrix停止开发新功能。

同时,Spring Cloud也从依赖生态伙伴提供关键组件,演变到自己开发适配关键组件,例如提供了:

  • Spring Cloud Zuul;
  • Spring Cloud Config;
  • Spring Cloud Loadbalance;

等开源产品。

相信这才是Spring Cloud生态的最好姿态,逐渐的整合,才能为更多的开发者提供舒心的服务!

才能少造轮子,才能早下班!才能早下班!才能早下班!

五、Dubbo真香

相比国内的Dubbo来说,更新的正是热火朝天,也被Apache收了!配套的技术也在不断地被开源出来供大家学习和使用!

Dubbo是阿里巴巴公司一个开源的高性能服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,使得应用可通过高性能RPC实现服务的输出、输入功能和Spring框架无缝集成。

Dubbo特性一览

下图是自己珍藏多年的一张RPC完整的调用链,一般人我真的不告诉他!这可是知识星球的专用图哦!靠着他我还要升职加薪的!

一个完整的RPC调用链

Dubbo和阿里巴巴集团内部使用的RPC框架HSF有异曲同工之妙,都可以支撑起我们高并发的业务需求!下图是一张清晰易懂的架构图:

Dubbo整体调用架构

Dubbo的配套技术,也在不断的更新演进,诸如:类似Hystrix功能阿里开源的Sentinel,为支持Dubbo生态发展阿里新的开源项目Nacos等。

也相信随着阿里和Dubbo开源社区的不断活跃,越来越多的系统会采用Dubbo!早学晚学都要学,为了升职加薪,趁着现在赶紧学!

PS:Dubbo很重要吗?是的!真的很重要,只要你去面试,如果面试官不问你Dubbo,我可以给你说,这个面试官就不是一个合格的面试官!

Dubbo官网地址,中文的哦!

http://dubbo.apache.org/zh-cn/index.html

六、Spring Cloud Alibaba什么鬼?

最近的一个关于Spring Cloud的热门事件就是Spring Cloud for Alibaba了!Spring Cloud 发布了Spring Cloud Alibaba首个预览版本:Spring Cloud for Alibaba 0.2.0!

项目地址:

https://github.com/spring-cloud-incubator/spring-cloud-alibaba

Spring Cloud for Alibaba是由一些阿里巴巴的开源组件和云产品组成的。这个项目的目的是为了让大家熟知的Spring框架其优秀的设计模式和抽象理念,以给使用阿里巴巴产品的Java开发者带来使用Spring Boot和Spring Cloud的更多便利。

简介和主要功能

主要组件

后续计划

鉴于目前Spring Cloud集成的只有Kafka和RabbitMQ这些消息队列,后续将会逐渐集成RocketMQ,SchedulerX以及SLS等也会逐渐考虑进去!

Spring Cloud Alibaba项目将于2019年从孵化器毕业,届时会正式加入Spring Cloud 正式版本轨道上来!我们这些伸手党也会更加舒服的敲代码!

明天给大家推出Hystrix停止更新之后具体的解决方案!敬请期待!最后祝大家玩得愉快!早点下班!

热门内容:

1、捐“粑粑”也能赚钱了!

2、线上出故障了!我慌得一匹!

3、【双11狂欢背后】微服务注册中心如何承载大型系统的千万级访问?

4、Redis热点Key发现及常见解决方案!

5、Docker的6年之痒!

6、Kafka如何做到1秒处理1500万条消息?

7、Redis敢在线上做Keys正则匹配操作!你可以离职了!

8、【面试必问】支撑百万并发的"IO多路复用"技术你了解吗?

相关文章:

  • 2018年博客之星评选,需要您宝贵的一票!非常感谢!
  • 用私有构造器或者枚举类型强化Singleton 属性
  • 阿里分布式事务框架GTS(Seata)开源啦!
  • 完了!生产事故!几百万消息在消息队列里积压了几个小时!
  • [原创]java WEB学习笔记18:java EE 中的MVC 设计模式(理论)
  • 阿里巴巴的26款超神Java开源项目!
  • window下使用vnc远程登录阿里云ECS/ubuntu图形界面
  • 看似简单的hashCode和equals面试题,竟然有这么多坑!
  • 2019年互联网高频Java面试题指南!互联网升职加薪方案!
  • FZU 2112 并查集、欧拉通路
  • 看了这篇Dubbo RPC面试题,让天下没有难面的面试题!
  • JavaScript的面向对象编程(OOP)(二)——原型
  • Alibaba之Nacos详解
  • 10款常见MySQL高可用方案选型解读
  • wireshark抓包图解 TCP三次握手/四次挥手详解
  • [数据结构]链表的实现在PHP中
  • git 常用命令
  • gulp 教程
  • JSONP原理
  • NSTimer学习笔记
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 关于for循环的简单归纳
  • 用Python写一份独特的元宵节祝福
  • 怎样选择前端框架
  • ​什么是bug?bug的源头在哪里?
  • #if 1...#endif
  • #在 README.md 中生成项目目录结构
  • $(function(){})与(function($){....})(jQuery)的区别
  • (floyd+补集) poj 3275
  • (多级缓存)缓存同步
  • (六)激光线扫描-三维重建
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (一)appium-desktop定位元素原理
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • ****Linux下Mysql的安装和配置
  • .net Application的目录
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .net Stream篇(六)
  • .netcore如何运行环境安装到Linux服务器
  • .NET文档生成工具ADB使用图文教程
  • ::前边啥也没有
  • @JoinTable会自动删除关联表的数据
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [ajaxupload] - 上传文件同时附件参数值
  • [Apio2012]dispatching 左偏树
  • [autojs]逍遥模拟器和vscode对接
  • [C#]C# OpenVINO部署yolov8图像分类模型
  • [C/C++]数据结构 堆的详解
  • [C++]AVL树怎么转
  • [C++]类和对象【上篇】
  • [C++]指针与结构体
  • [codevs] 1029 遍历问题
  • [CTF]php is_numeric绕过
  • [Fri 26 Jun 2015 ~ Thu 2 Jul 2015] Deep Learning in arxiv