什么是Spring cloud
构建分布式系统不需要复杂和容易出错。Spring Cloud 为最常见的分布式系统模式提供了一种简单且易于接受的编程模型,帮助开发人员构建有弹性的、可靠的、协调的应用程序。Spring Cloud 构建于 Spring Boot 之上,使得开发者很容易入手并快速应用于生产中。
个人理解:服务发现注册 、配置中心 、消息总线 、负载均衡 、断路器 、数据监控 等操作。我们能在 Spring Boot 的基础上轻松地实现微服务项目的构建。
Sprng Cloud 的服务发现框架——Eureka
Eureka是基于REST(代表性状态转移)的服务,主要在AWS云中用于定位服务,以实现负载均衡和中间层服务器的故障转移。我们称此服务为Eureka服务器。Eureka还带有一个基于Java的客户端组件Eureka Client,它使与服务的交互变得更加容易。客户端还具有一个内置的负载平衡器,可以执行基本的循环负载平衡。在Netflix,更复杂的负载均衡器将Eureka包装起来,以基于流量,资源使用,错误条件等多种因素提供加权负载均衡,以提供出色的弹性。
个人理解:服务发现框架。
Sprng Cloud 的负载均衡之 Ribbon
Ribbon 是 Netflix 公司的一个开源的负载均衡 项目,是一个客户端/进程内负载均衡器,运行在消费者端。
个人理解:类似 nginx 不过 ribbon是一种集中式的负载均衡器, 将所有请求都集中起来,然后再进行负载均衡。
Sprng Cloud的 Open Feign
OpenFeign 也是运行在消费者端的,使用 Ribbon 进行负载均衡,所以 OpenFeign 直接内置了 Ribbon。
个人理解:消费者省去调用 RestRemplate
的 API
,直接指定生产者方法
Sprng Cloud的 Hystrix
在分布式环境中,不可避免地会有许多服务依赖项中的某些失败。Hystrix是一个库,可通过添加等待时间容限和容错逻辑来帮助您控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点,停止服务之间的级联故障并提供后备选项来实现此目的,所有这些都可以提高系统的整体弹性。
个人理解:就是一个能进行 熔断 和 降级 的中转仓库,提高整体系统的弹性。防止某个系统服务挂掉后,影响整体的系统运行直至服务雪崩。
Sprng Cloud的Zuul
ZUUL 是从设备和 web 站点到 Netflix 流应用后端的所有请求的前门。作为边界服务应用,ZUUL 是为了实现动态路由、监视、弹性和安全性而构建的。它还具有根据情况将请求路由到多个 Amazon Auto Scaling Groups(亚马逊自动缩放组,亚马逊的一种云计算方式) 的能力
个人理解:介于客户端与服务器端之间,用于对请求进行鉴权、限流、 路由、监控等功能。最关键的就是 路由和过滤器 了.