SpringCloud是什么?

SpringCloud不是一个单独的框架,而是一整套用于构建微服务架构的解决方案。

微服务架构需要解决什么问题?

服务注册与发现

服务注册中心需要存储如下信息:
服务名 -> 服务地址1,服务地址2…
并且,各个服务要定时发送心跳至注册中心;服务失效,各个客户端应该接收到通知,防止访问到无效的服务地址。

客户端负载均衡

当调用一个服务,有多个可用的服务地址,客户端需要根据负载均衡策略,合理选择服务实例。

服务容错

服务1调用服务2,服务2调用服务3。
当服务3阻塞,导致服务2阻塞,然后导致服务1阻塞,错误将在系统中蔓延。
因此需要服务容错机制,在服务调用超时或不可以的情况下,主动返回错误信息而不是无限等待。

服务网关

集中处理一些和具体业务逻辑无关的逻辑,如权限验证。
服务路由,负载均衡。

SpringCloud各组件介绍

组件 功能
Netflix Eureka 服务注册与发现
Ribbon 客户端负载均衡
Hystrix 服务容错
Zuul API服务网关
Config 远程配置中心
Bus 消息总线,实际上就是结合MQ,实现服务之间消息发布订阅

当然这一切基于SpringBoot,各个组件在SpringBoot的基础上添加相应的功能,构成SpringCloud微服务架构中的一个构件。
SpringCloud微服务架构

总结

SpringCloud是一套微服务架构解决方案,关注于快速构建微服务,以及解决微服务架构中会出现的问题。
SpringCloud封装了很多现有的框架组件,而不是从零建造轮子。
如何学习?
个人认为通过简单的例子,了解微服务架构中需要解决什么样的问题,又是如何去解决的,就可以。
Spring的更新实在太快了,使用Spring也就意味着一系列的配置配置配置,把时间花在这些地方是不值得的。
想要快速搭建SpringCloud服务,推荐博文:
https://my.oschina.net/happyBKs/blog/1629043
或者到github上寻找例子:
https://github.com/spring-cloud-samples
注:SpringCloud的版本非常重要,不同版本很可能不兼容,注意搭建过程中版本问题。

相关文章:

  • 2022-01-11
  • 2021-12-02
  • 2021-09-24
  • 2022-01-01
  • 2021-08-13
  • 2021-10-04
  • 2021-08-29
  • 2021-10-16
猜你喜欢
  • 2021-11-12
  • 2021-08-28
  • 2021-10-15
  • 2021-09-20
相关资源
相似解决方案