SpringCloud常见组件详解

一、什么是springcloud

SpringCloud:服务治理平台,包含服务注册与发现、配置中心、负载均衡、数据监控等。利用springboot开发的便利性简化了分布式系统基础设施开发.

二、常见组件

1、Eureka(旧,已停更):服务注册与发现
Netflix开发的服务发现框架,包含2个组件:Eureka Server和Eureka Client
Eureka Server相当于一个注册中心,等待Eureka Client客户端的启动连接,客户端访问注册中心之后,注册中心会记录客户端的ip,把所有服务进行一个登记注册。
有可能会产生宕机,所以Eureka服务端和客户端默认每隔30秒会联系一下,30s之后client会再访问一次server,如果server有3次没有收到client的注册信息(心跳信息),他就会把这个服务从列表中删除。
Eureka Client内置一个负载均衡器(使用轮询负载均衡算法的负载均衡器)

当client服务1有3个(集群),client服务2去访问server时会发现列表中3个client服务1,client服务2调用client服务1的时候,内部的负载均衡器会利用自己的负载均衡算法轮询的随机选一个client服务1

2、OpenFeign:服务间调用,基于动态代理机制,根据注解和选择的机器,拼接请求 url 地址,发起请求。
和ribbon差不多,用于消费端访问提供端,底层就是ribbon。(用注解实现的)

3、Ribbon:客户端负载均衡的服务调用组件,实现负载均衡,从一个服务的多台机器中选择一台。
用于服务的消费端访问服务的提供端(ribbon做了网络通讯的底层实现),如果提供端为多个是集群的,那么ribbon可以自动的进行负载均衡。(代码层面实现的)

4、Hystrix(旧,已停更):容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力。Hystrix会创建很多个线程池,将每个服务放进去,且不互相影响。实现了不同服务调用的隔离,避免了服务雪崩的问题。
服务A 调用——>服务B 调用——>服务C
服务C出错之后,以前都是将异常不停的向上一个服务返回,最终抛到客户端。
有了Hystrix之后,服务C出错之后,服务B会做一个容错处理,生成一个托底(底层)数据返回到服务A上,服务A再返回给客户端

5、Zuul(旧,已停更):网关管理,由 Zuul 网关转发请求给对应的服务。提供路由和访问过滤功能。
(新)Gateway:在zuul基础上建立的,底层使用了高性能通信框架Netty
6、Config(旧),Nacos:服务配置
7、Bus(旧),Nacos:消息总线


版权声明:本文为weixin_44988663原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。