Spring Cloud的详细介绍及实现原理

什么是SpringCloud?

SpirngCloud是一系列框架的有序集合,利用springboot开发便利性巧妙地简化了分布式系统的开发,对微服务框架又封装了多个开源组件,如:
Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从而知道其他服务在哪里

总结一下
Eureka Client:负责将这个服务的信息注册到Eureka Server中
Eureka Server:注册中心,里面有一个注册表,保存了各个服务所在的机器和端口号

Ribbon:服务间发起请求的时候,基于Ribbon做负载均衡,从一个服务的多台机器中选择一台,默认使用(轮询)

Feign:基于Feign的动态代理机制,根据@FeignClient注解和选择的机器,拼接请求URL地址,发起请求

Feign整合了Ribbon,具有负载均衡的能力
Feign整合了Hystrix,具有熔断的能力

Hystrix:发起请求是通过Hystrix的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔离、熔断和降级,避免了服务雪崩的问题

熔断:在规定时间让该服务直接返回
降级:每次调用该服务,你就在数据库里添加一条消息,因为该服务挂了,导致没添加成功!等该服务恢复了,可以根据这些信息手动加一下上去

Zuul:如果前端、移动端要调用后端系统,统一从Zuul网关进入,由Zuul网关转发请求给对应的服务

Eureka自我保护机制是什么?
自我保护机制是为了防止误杀服务而提供的一个机制,当Eureka Server 节点在短时间内丢失了过多实例的连接时(比如网络故障或频繁启动关闭客户端)节点会进入自我保护模式,保护注册信息,不再删除注册数据,故障恢复时,自动退出自我保护模式。

Spring Cloud 的优点:
基于 Spring Boot,具有简单配置、快速开发、轻松部署、方便测试的特点。
支持 REST 服务调用,相比于 RPC,更加轻量化和灵活,跨语言服务的实现,服务的发布部署
结合 Swagger,也使得服务的文档一体化
Spring Cloud 提供整套的微服务解决方案,开发成本较低,且风险较小

Spring Cloud 的缺点:
REST 服务调用性能会比 RPC 低一些(但也不是强绑定)
Spring Cloud 整合了大量组件,相关文档比较复杂,需要针对性的进行阅读。

流程图:

在这里插入图片描述

总结:

首先通过Eureka保存和调用各个服务,
通过Feign进行动态代理,针对需要的地址,发起请求、解析响应
使用Rebbon进行负载均衡,会帮你在每次请求时选择一台机器,均匀的把请求分发到各个机器上,默认使用(轮询)
使用Hystrix隔离、熔断和降级,防止服务雪崩的问题
通过Zuul可以进行统一的降级、限流、认证授权、安全

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值