写在前面
在这篇文章 中我们分析了单体应用的问题,以及用来解决这些问题的解决的方案微服务
,并接着看了微服务需要考虑的各种,如服务调用,负载均衡,服务治理,链路追踪,分布式事务,等,而我们继续一个框架来帮我们解决种种的这些问题,因此spring cloud就应运而生了,本文就一起来看下吧!
1:springcloud组件
springcloud作为微服务解决方案框架,对于每个每个要解决的问题点只是提供了某种模式,并没有给出具体的技术实现,具体的技术实现是通过独立的组件形式来提供的,而这些组件曾经的王者是Netflix(俗称奈飞)
,如可能大家都知道的eureka,是用解决服务治理的具体技术实现组件,ribbon是负载均衡的具体技术实现组件,但随着时间的发展,因为Netflix公司对于组件消极维护的态度,导致springcloud逐渐摒弃了Netflix,转而用到阿里巴巴公司提供的各种组件,spring cloud alibaba,如nacos就是服务治理的技术实现组件,dubbo就是rpc服务调用组件,seata是分布式事务提供具体技术实现的组件。除了Netflix,springcloud alibaba提供了具体的分布式组件,springcloud官方或者第三方组件库也提供了具体的组件(所以你也可以提供具体的组件)
,具体可以参考下图:
2:springcloud版本介绍
springcloud的release版本,并不是像其它的框架使用的数字大小来标记,而是别出心裁的使用了26个英文字母打头的单词,如下图:
上面的都是各个大版本的版本号,但是在每个大版本之间其实还是有很多的小版本的,我们也有必要了解下,避免选择了不稳定的版本使用在线上环境而发生问题,具体小版本如下:
snapshot版本:快照版本,如2020-01-SNAPSHOT,是分支的最新修改版本,更新非常频繁,不建议使用在线上环境。
milestone版本:里程碑版本,如2023-06-M1,2023-06-M2,最后的数字代表第几个里程碑版本。当某个功能开发完毕之后会有里程碑版本,在稳定版发布之前可能会有多个milestone版本。
release-candidate版本realease的候选版本,即大版本真正的发布之前,发布的若干个让用户试用的版本,如2020-01-RC1,此时距离release版本就很近了。
release版本:稳定版本,如2020-09,稳定版本可以放心的在线上使用,一般选择这种类型的版本。
这个过程可以参考一下这个过程:
开发
->开发
->snapshot
->开发
-》开发
-》snapshot
-》功能整体开发完毕
-》milestone
-》修复bug,完善代码
-》milestone
-》修复bug,完善代码
-》rc
-》用户试用,修复bug
-》rc
-》bug整体修复完毕
-》release
。