在正式开始研究 SpringCloud 的技术之前,咱先简单的用比较短的篇幅聊一点概述性质的东西,让思维活跃起来。
SpringCloud与SpringBoot的关系和对比
一开始学习 SpringCloud 咱就知道,SpringCloud 的技术大多都不是自己造的,都是整合了现有的技术而来,而整合的方式和风格是采用 SpringBoot 的基础架构。所以由此可以总结出 SpringBoot 与 SpringCloud 的一个很大的、也是最重要的区别:
SpringBoot 着眼于单体应用的快速构建开发
SpringCloud 关注全局应用的构建和治理
而且还有一点,SpringBoot 是单体应用开发,开发基于 SpringBoot 的应用时完全可以不依赖 SpringCloud 的组件;而只要使用了 SpringCloud ,就离不开 SpringBoot 了。
SpringCloud是方案而不是实现
咱也知道,SpringCloud 实质上是整合了好多的技术,总结出的一套完整的微服务构建的整体解决方案,它包含的内容非常多(服务发现、负载均衡、熔断降级、服务网关、消息总线、配置中心等)。由此可以看得出来,SpringCloud 更像是定制好了一套微服务解决方案的规范,具体实现可以不是自己搞,于是就出现了好多大厂自己整合的 SpringCloud 整合方案,目前被大家熟知的一般有两种:SpringCloudNetflix 、SpringCloudAlibaba 。
前面几年,SpringCloud 一直都是主推 SpringCloudNetflix 的技术解决方案,但随着 Netflix 的产品出现这样那样的事情,搞得大家都怪别扭的,SpringCloud 官方也别扭。正巧 Alibaba 对 SpringCloud 的整体解决方案中也提供了一些解决方案(服务发现、配置中心、消息、事务等),SpringCloud 官方觉得很可以,就把 SpringCloudAlibaba 也抬到了 SpringCloud 的主页上了。
先写SpringCloudNetflix的一些小想法
既然现有的整体解决方案有 SpringCloudNetflix 与 SpringCloudAlibaba ,而我选择先写 Netflix 系的组件,这里面有几个我个人的想法吧。
先写 SpringCloudNetflix 有几个原因:从目前我对身边一些小伙伴的调查,大多数都反馈,还是 SpringCloudNetflix 用的多,SpringCloudAlibaba 刚开始成型,大多数还不是很敢用,而且前段时间面试的伙计跟我说,面试也都是问 SpringCloudNetflix 的东西,几乎不问 SpringCloudAlibaba ,这也更坚定了我的想法,还是先把 SpringCloudNetflix 的原理写出来吧。
另外一个原因,就要回归到 SpringCloudNetflix 与 SpringCloudAlibaba 的本身了,SpringCloudAlibaba 更多的是给你一些已经封装好的组件,你拿去用就可以(开箱即用),不像 SpringCloudNetflix 一样还得自己引入依赖、自己配置这个那个的,所以从这个角度来讲,SpringCloudAlibaba 的封装度更高,反而不适合刚接触 SpringCloud 原理的小伙伴快速理解内部的设计和构造。也是基于这个原因吧,我选择先搞 SpringCloudNetflix 的原理。
小册的核心内容
再说下小册的核心内容吧,这次写 SpringCloudNetflix 的内容主要围绕五大神兽来:
服务注册与服务发现:Eureka
服务调用与负载均衡:Ribbon & Feign
服务熔断与服务降级:Hystrix
服务网关与动态路由:Zuul & Gateway
分布式配置中心:Config
毕竟这些个家伙是咱平常微服务开发中最常用到的,那重点自然就放到这上面了。除此之外的一些同属于 SpringCloud 官方的其他组件,目前暂时还没有考虑到写进来,如果小伙伴的呼声比较高,我也可以在发行后继续往里面填充(没关系,发行了也可以继续往里加)。
最后也不多bb了,愿小伙伴能在 Cloud 小册的加持下,对 SpringCloud 的原理和设计有一定的理解,最理想的效果那自然是升华自己,如果能再在简历中添上非常重的一笔,那简直就是完美(滑稽)!快上车,咱准备上高速了 ~ ~ ~ 突突突突突突——————
喜欢的朋友记得点赞、收藏、关注哦!!!