谈谈SpringBoot和SpringCloud微服务的关系

        最近实习完找工作,很多公司都会要求微服务开发的经验,可谓是越来越卷了。不管怎样,迎难而上!

        其实,这两个肯定不是割裂的,相辅相成。我们要学习SpringCloud,一定要先把SpringBoot彻底掌握。

        单体应用VS微服务

       开发一个网站时,单体应用就是对应的后台,连接一个数据库,用户直接调API,把数据返回。这时这种模式有利有弊:好处就是便捷,但坏处就多的多了:

        比如开发速度慢,启动时间很长。

        举个例子,我在做一个移动端项目时,正常的项目在公司时都是需要版本的迭代更新,功能越来越多,模块越来越丰富,代码越来越庞大,这样去启动一个项目,就越来越慢了,访问的速度也慢。

谈谈SpringBoot和SpringCloud微服务的关系_第1张图片

        这是简单的java后台连接数据库,然后用户进行访问。而页面可能是Vue或者模板引擎,这都不影响他是个单体应用

        那什么微服务?项目越来越大越来越杂的时候,我们会想按模块拆分,拆分成很多个小模块。例如我项目里面的在线教育,原先是一个大的单体项目,优化的方向就是拆分成多个微服务,例如视频服务,订单服务,用户服务等等。把这些服务拆分之后,每个服务各司其职,责任明确,启动也更迅捷,维护成本也下降了。假如一个服务挂了,不会影响到其他服务;但如果是单体应用的话一个挂了整个都不能用了,除非得部署集群。

        那微服务也有缺点,例如引入一些分布式事务的问题。单体应用的时候直接连接一个数据库,模块交互的时候事务都是一些本地的事务;而微服务的每个服务都会对应一个数据库的,从而就产生了分布式的事务问题。除了这个问题还有服务管理,单体应用时只是简单的几个机器管理,而微服务每个服务都需要部署一台机器,所以机器数量也会很多,因为需要集群部署。

谈谈SpringBoot和SpringCloud微服务的关系_第2张图片

 更多详情

SpringBoot与SpringCloud的关系与区别_小白的小小白的白的博客-CSDN博客_springboot和springcloud的区别

你可能感兴趣的:(java开发,spring,boot,spring,cloud,微服务)