SpringCloud
# SpringCloud
# 1. 什么是SpringCloud?
SpringCloud是一系列框架的有序集合,它利用SpringBoot的开发便利性,巧妙的简化了分布式系统基础设施的开发,如服务发现注册,配置中心,消息总线,负载均衡,断路器,数据监控等,都可以用SpringBoot的开发风格做到一键启动和部署。SpringCloud没有重复造轮子,他只是将各家公司开发的比较成熟的,经得起实际考研的服务框架组合起来,通过SpringBoot风格进行再封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂,易部署和易维护的分布式系统开发工具包。 SpringCloud不仅提供了全套的分布式系统解决方案,还是先了和云端平台以及SpringBoot开发框架的继承,为各类服务提供模板行配置。其主要设计的组件包括服务注册与发现,配置中心,消息中心,负载均衡,数据监控等。 总的来说,SpringCloud是一个微服务框架,它提供了一个服务治理平台,用于微服务架构中管理和协调服务,让微服务架构的落地变得更简单。
# 2. SpringCloud的五大组件
SpringCloud包含五大组件:服务发现,配置中心,断路器,路由网关,数据监控。
- 1.服务发现-Netflix Eureka
- 2.客户端负载均衡-Netflix Ribbon
- 3.断路器-Netflix Hystrix
- 4.路由网关-Netflix Zuul
- 5.配置中心-Spring Cloud Config
# 3. SpringCloud的五大组件功能介绍
1.服务发现-Netflix Eureka 作用:实现服务治理(服务注册与发现) 由两个组件组成:Eureka Server和Eureka Client Eureka Server:提供服务注册和发现,支持集群部署 Eureka Client:服务提供者,向Eureka Server注册自己提供的服务,同时从Eureka Server获取注册的服务列表
2.客户端负载均衡-Netflix Ribbon 作用:实现客户端负载均衡 由两个组件组成:Ribbon和RestClient Ribbon:客户端负载均衡器,负责服务调用 RestClient:服务调用,负责发起服务请求
3.断路器-Netflix Hystrix 作用:实现服务熔断,防止服务雪崩 为了保证高可用,单个服务通常会集群部署,由于网络原因或者自身原因,服务不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器线程资源会消耗完毕,导致服务瘫痪。服务与服务之间依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩效应”。
4.路由网关-Netflix Zuul 作用:实现路由网关,统一入口 类似Nginx反向代理,负责路由转发,负载均衡 在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个API网关根据请求的url路由到相应的服务。添加API网关后,在第三方调用端和服务提供方之间就创建了一面墙,这面墙直接与调用方通信进行权限控制,后将请求均衡分发给服务端。
5.配置中心-Spring Cloud Config 作用:实现分布式系统的动态配置中心,可对所有环境中的应用程序进行统一配置,动态管理配置信息。 Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。