Spring、SpringBoot、Spring Cloud
从字面上理解Spring、SpringBoot、Spring Cloud的区别
SpringBoot、Spring Cloud是我们经常看到的名词,我最近面试的有些学生已经不懂为什么,他直接就去想那种复杂的场景,但是我们正常的业务,哪怕大公司流量很大,但大部分业务流量是没有那么大的,就算业务比较大他分成不同的服务器,他流量还是在一定的可控性内,所以大部分90%左右的项目,就算在大公司他也是正常考虑的,不用一上来就很乱。
今天呢,我就讲讲SpringBoot和Spring Cloud的区别。
boot这个词就是引导加载的意思,SpringBoot的意思就是你加载和引导的时候要做的事,这个时候可以在你刚开始初始化加载的时候,就把需要的组件用这个配置的方式,把这个组形给它封装起来,而不用你一个个去通过我们说的XML也好,或者其他的方式把它搭建起来,所以说SpringBoot是基于惯例和我们自己的配置,它的特点就是去XML的这种格式。那Spring本身你要跑一个Springweb ,spring mvc,你要通过入口是Web的XML嘛,你需要配置很多很多的文本,才能跑起来,所以SpringBoot是两个东西,一个是配置相关的,一个是运行相关的。你理解boot这个名词,其实你就很好理解SpringBoot的概念,
那Spring Cloud, cloud是云的意思,Spring Cloud就是云服务,这个云听起来云里雾里是吧,这个我们要去展开一下,这是微服务,是在什么场景下的呢?像我们一般在学校做事情,或者我们在一个中小公司,流量不是很大的公司,一般情况下我们不用微服务,用并行就好了,因为业务如果是流量比较大了,我们能够撑得起的时候,分成一个服务里两个,就是做成多个集群分布式。
那什么是到微服务呢,就是流量非常非常大,业务非常多,互相调用非常杂,我调你的,acp请求调你要接口互相管理,因为不同项目进行调用嘛,那就有可能会出现很多问题,一个是可能这个调用会失效,那怎么能保证他不失效,怎么能保证流量大的时候他能稳定,这个时候我们采用了一套。所以你会发现真正出现一个东西,他不是凭空来的,他是因为特殊场景,但你会发这么一做就微服务的目的,就是为了解决流量大的情况下,项目比较多之间的接口的稳定性,传输调用的稳定性和适配性,你理解在什么场景下就知道了。
有同学说那消息队列是什么意思?消息队列就是我们平时,一个接口叫另外一个接口,我们像写代码一样,他要从第一行代码往上执行,执行到最后一句话返回return,这就叫同步,你必须要执行完才能返回来,那这个时候效果效率就很差,所以我叫你的时候,你必须执行完再告诉我,结果是什么,但是有些接口他是不需要知道执行完的接口结果,比如说我们叫通知消息通知,我告诉你一个事,你收到就好了,你边执行边存储下来,或者怎么去分发的我不关心,所以我不用把执行完的告诉你,最好是我跟你发消息,你就反问,因为我们一个请求他必须给应答,那他只要告诉我就好了,不用再执行,你在执行前就告诉我,那这个就是为了提高性能去做这事情,但如果你的性能本身没有稳定,流量很小,你就执行完了再告诉我,他也不影响稳定性或者他的执行,那你就没有必要用MQ。
所以很多同学,连使用场景都不清楚,你觉得学框架对你的帮助很大吗?大家都会用的东西,你觉得是帮助很大吗,但是这东西你工作之后又不用,公司已经搭好了,或者他不会让普通员工做,他有架构部的人,或者是架构师在做这个事情,普通员工就是做业务开发呀,产品什么思路你做什么事情,他不是我们需要掌握的技能点,跳槽时候背一背就好了,所以很多事情就是空中楼阁,虚无缥缈。不懂又有点懂,但是这个对考试来说就不行,跟考试这种状态,就是及格左右啊,大家可能考试经验很丰富的时候,这东西就不太行,所以今天我们拿这个事来讲,让大家理解在什么场景下,他的这种微服务的扩展,或者中间件的扩展,你理解这个场景之后,这些名词比如什么叫云,什么叫引导,什么叫启动,什么叫同步,什么叫异步,自然就很好理解了。
#spring##springboot##springCloud##晒一晒我的offer##校招#