一 Eureka
https://github.com/Netflix/eureka
Eureka是Netflix开源的服务发现组件,本身是一个基于REST的服务。它包含Server和Client两部分。
二 Ribbon
https://github.com/Netflix/ribbon
Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP客户端行为。
三 Hystrix
https://gitee.com/mirrors/hystrix
https://github.com/netflix/hystrix
hystrix是Netflix发布的服务容错保护机制。
四 Feign
https://github.com/openfeign/feign
Feign是Netflix开发的声明式、模板化的HTTP客户端。
五 Spring Cloud
https://github.com/spring-cloud/spring-cloud-netflix
https://gitee.com/mirrors/spring-cloud-netflix
Spring Cloud 包含了非常多的子框架,其中,Spring Cloud Netflix是其中一套框架,由Netflix开发后来又并入Spring Cloud大家庭,它主要提供的模块包括:服务发现、断路器和监控、智能路由、客户端负载均衡等。
Spring Cloud Netflix包含的组件及其主要功能大致如下:
Eureka,服务注册和发现,它提供了一个服务注册中心、服务发现的客户端,还有一个方便的查看所有注册的服务的界面。 所有的服务使用Eureka的服务发现客户端来将自己注册到Eureka的服务器上。
Zuul,网关,所有的客户端请求通过这个网关访问后台的服务。他可以使用一定的路由配置来判断某一个URL由哪个服务来处理。并从Eureka获取注册的服务来转发请求。
Ribbon,即负载均衡,Zuul网关将一个请求发送给某一个服务的应用的时候,如果一个服务启动了多个实例,就会通过Ribbon来通过一定的负载均衡策略来发送给某一个服务实例。
Feign,服务客户端,服务之间如果需要相互访问,可以使用RestTemplate,也可以使用Feign客户端访问。它默认会使用Ribbon来实现负载均衡。
Hystrix,监控和断路器。我们只需要在服务接口上添加Hystrix标签,就可以实现对这个接口的监控和断路器功能。
Hystrix Dashboard,监控面板,他提供了一个界面,可以监控各个服务上的服务调用所消耗的时间等。
Turbine,监控聚合,使用Hystrix监控,我们需要打开每一个服务实例的监控信息来查看。而Turbine可以帮助我们把所有的服务实例的监控信息聚合到一个地方统一查看。
https://github.com/spring-cloud/spring-cloud-commons
Spring Cloud Commons提供了两个库的特性:Spring Cloud Context 和 Spring Cloud Commons。
Spring Cloud Context为Spring云应用程序((bootstrap context, encryption, refresh scope and environment endpoints)的应用程序上下文提供实用工具和特殊服务。
Spring Cloud Commons是一组抽象和常用的类,用于不同的Spring Cloud 实现(如Spring Cloud Netflix 和 Spring Cloud Consul)。