今天无意间翻了一下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的使用指南,准备后期写一篇文章探讨一下,敬请期待!

四、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 正式版本轨道上来!我们也会更加舒服的敲代码!


欢迎工作一到五年的Java工程师朋友们加入Java填坑之路:860113481

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!