SpringCloud五大组件

注册中心 Eureka

​ Eureka专门负责服务的注册与发现。系统中的每个服务都包含一个Eureka Client组件,这个组件专门将包含他的那个服务注册到Eureka Server中。每个服务既可以是服务提供者也可以使服务消费者

服务注册 Register

​ 当Eureka客户端(提供者)向Eureka Server 注册时,它将提供自身的元数据,比如IP地址,端口,运行状态等,

服务续约 Renew

​ Eureka客户每隔30s发送一次心跳续约,通过续约来告知Eureka Server该Eureka客户还存在,没有出现问题。如果Eureka Server在90s内没有收到对应提供者的续约,他就会在注册表中删除此提供者

获取注册列表信息 Fetch Registries

​ Eureka从服务器获取注册表信息,并将缓存在本地。客户端会根据注册表信息查找其他服务,从而进行远程调用。该注册表每30s更新一次。每次从服务器里获取的信息可能会与本地缓存的信息不一致,Eureka客户端会自动处理。如果因为某种原因导致注册列表信息不能及时匹配,Eureka客户端会重新获取整个注册表信息。

服务下线 Cancel

​ Eureka客户端在程序关闭时向Eureka服务器发送取消请求。发送请求后,该客户端实例信息将从服务器的实例注册表中删除。该下线请求不会自动完成,它需要调用以下内容:DiscoveryManager.getInstance().shutdownComponent();

服务剔除 Eviction

​ 在默认的情况下,当Eureka客户端连续90s没有向Eureka发送服务续约,Eureka会将该服务从注册列表中删除

负载均衡 Ribbon

将消费者的调用请求采用轮询的方式发送到不同的服务器上

Ribbon的负载均衡默认使用的是Round Robin轮询算法。比如我们做了一个系统,但是为了整个系统的高可用,就将此系统部署了集群,此时,消费者想调用这个系统就可以有多种调用途径,不至于,一个系统挂掉就用不了了。

如果我们没有做均衡操作,我们对系统1疯狂的调用,导致其他两个是摆设,那部署的集群高可用就是无用功

所以Ribbon会获取注册表中的提供者(部署在不同服务器上的系统)的信息对请求做均衡操作,将请求发散到不同的服务器上调用

熔断器 Hystrix

Hystrix是一个能进行熔断和降级的库,通过使用它能提高整个系统的安全性,防止服务雪崩等类似事件的发生

如上图服务A调用服务B,服务B又调用了服务C,此时由于某种原因导致服务B调用服务C失败,在某些场景下,大量的同样请求服务C失败,会导致很多请求阻塞在这里,那么久会间接的导致服务A调用服务B的请求也阻塞在B,然后导致服务A也会阻塞崩溃。就会导致服务雪崩

这时,熔断器的作用就体现出来了(熔断):当指定时间内请求失败率达到设定阈值时,就会开启熔断器,不让所有的请求通过,直接返回失败的响应,默认短路5s,就会变为半开启,让下一个请求通过,如果请求成功,就变为关闭状态,失败继续开启

服务降级:降级是为了更好的用户体验,当调用一个方法异常时,通过执行另一逻辑代码给用户良好的体验。

网关 Zuul

网关提供消费者一个统一的入口,用于对请求鉴权、限流、路由、监控等。

在微服务架构中,为了系统的安全性, 后端服务往往不直接开放给前端,而是通过网关根据请求的url,路由到相应的服务。当添加API网关后,在第三方调用端和服务提供方之间就创建了一面墙,这面墙直接与调用方通信进行权限控制,后将请求均衡分发给后台服务端。

远程调用 Open Feign

顾名思义,提供了不同服务之间远程调用的功能。

在提供者服务上使用@FeignClient(),在此注解中添加提供者服务的名字。

原文链接:https://zhuanlan.zhihu.com/p/95696180?from_voters_page=true

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值