2.4 Spring Cloud Netflix

Spring Cloud Netflix主要为微服务架构下的服务治理提供解决方案,包括以下组件:

• Eureka,服务注册与发现。

• Zuul,服务网关。

• Ribbon,负载均衡。

• Feign,远程服务的客户端代理。

• Hystrix,断路器,提供服务熔断和限流功能。

• Hystrix Dashboard,监控面板。

• Turbine,将各个服务实例上的Hystrix监控信息进行统一聚合。

Spring Cloud Netflix是Spring Boot和Netflix OSS在Spring Cloud规范下的集成。其中,Netflix OSS(Netflix Open Source Software)是由Netflix公司开发的一套开源框架和组件库,Eureka、Zuul等都是Netflix OSS中的开源组件。而Spring Cloud只是把这些组件进行了整合,使得使用者可以更快速、更简单地构建微服务,以及解决微服务下的服务治理等难题。

Netflix OSS本身是一套非常好的组件,由于Netflix对Zuul 1、Ribbon、Archaius等组件的维护不利,Spring Cloud决定在Greenwich中将如下项目都改为“维护模式”(进入维护模式意味着这些组件以后不会有大的功能更新,只会修复Block级别的Bug及安全问题)。当然,这些组件短期来说仍然可以继续使用,但是长期来看显然是不合适的。

• Spring-Cloud-Netflix-Hystrix

• Spring-Cloud-Netflix-Ribbon

• Spring-Cloud-Netflix-Zuul

Spring Cloud Netflix在很多公司都有大规模使用,一旦停止新的功能更新,短期来看影响不大,但是长期来看显然是不适合的,怎么办呢?别慌,Spring官方提供了替换的建议,如图2-3所示。当然,除Spring Cloud Netflix外,在服务治理的解决方案上,还会有更多的选择,而最新发布的Spring Cloud Alibaba就是一个不错的方向。

图2-3 Spring Cloud官方版本替换建议