SpringCloud五大组件
本文内容纲要:
springcloud是springboot的超集,是微服务的全家桶。通过springcloud可以实现中小企业的快速部署。
springcloud项目是多个独立的子项目集合而成,所以它的版本管理比较特殊,版本名使用字母排序。
如果使用springboot2.0以上版本,我们应该使用springcloudF版本。
接着介绍下它的常用五个组件:
(1)服务发现--NetflixEureka
由两个组件组成:Eureka服务端和Eureka客户端
Eureka服务端用作服务注册中心,支持集群部署
Eureka客户端是一个java客户端,用来处理服务注册与发现。
工作原理:在应用启动时,Eureka客户端向服务端注册自己的服务信息,同时将服务端的服务信息缓存到本地。客户端会和服务端进行周期性的进行心跳交互进行更新服务信息。
(2)客户端负载均衡--NetflixRibbon
提供客户端的软件负载均衡算法。它基于Http和Tcp的客户端负载均衡,使得面向REST请求时变换为客户端的负载服务调用。
(3)熔断器--NetflixHystrix
作用:断路器,保护系统,控制故障范围。为了保证高可用,单个服务通常会集群部署。当网络或者其他原因导致单个服务出现问题,调用这个服务就会出现线程阻塞,此时如果大量请求进入,Servlet容器的线程资源就会消耗完毕,最终导致服务瘫痪。服务与服务之间的依赖,故障会传播,对整个微服务框架造成灾难性的严重后果,这个就是服务故障的“雪崩”效应。
(4)服务网关--NetflixZuul
作用:api网关,路由,负载均衡等作用
类型Nginx和F5,可以实现反向代理。
在微服务架构中,后端服务往往不直接暴露给前端,而是通过一个Api网关根据请求的Url,路由到响应的服务(MVC机制)。当添加Api网关后,在第三方调用端和服务提供方之间就创建了一面墙,这面墙直接与调用方进行通信进行权限控制。后将请求均衡分发给后台服务端。
(5)分布式配置--SpringCloudConfig
作用:配置管理
提供服务端和客户端,服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境。Config是静态配置的。
如果需要动态配置,可以使用springcloudbus进行动态配置更新。
参考:https://baijiahao.baidu.com/s?id=1621651597363566701&wfr=spider&for=pc
本文内容总结:
原文链接:https://www.cnblogs.com/wangyu19900123/p/12522921.html