网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
为什么这么说呢?大家思考一下,先看下面这种情况:
假设做一个这样简单的商务管理系统,倒是能做,服务小众嘛,讲究开发效率,一些问题在这体现的不是那么多,但是如果我们把眼光上升到京东、淘宝这些大型的电商项目来看,如果每个全部功能都写到一个模块里,这里给大家打个比方,一根钢管的承重力是200kg,我们买的东西全部放到一根钢管上,但凡它超过这个限度,我们现成的系统是不是就bom~,直接原地爆炸。那我们怎么样才能极大限度地去避免这种事情的发生呢?这就需要微服务了,那么接下来,风哥就带大家认识一下微服务,Let‘s go.
2 架构对比
微服务实际上还是一个分布式架构的解决方案,在文章开头,风哥仅举了一个小例子,相信有的小伙伴对单体架构和分布式架构还不清晰,所以,我在这部分将对两者地架构进行分析:
2.1 单体架构
单体架构特征:将所有服务集中到一个模块里进行开发。
可以看出单体架构地特点:
- 优点
- 结构简单
- 部署容易
- 缺点
- 耦合度高、可扩展性差、升级维护困难
2.2 分布式架构
分布式架构特征:根据业务功能对模块进行拆分,极大限度保证一个功能一个模块,一个模块为一个服务
可以看出分布式架构特点:
- 优点:
- 耦合度低
- 服务易于升级和扩展
- 缺点:
- 整体架构复杂
- 项目上线部署难度大
既然微服务这么好用,降低了服务间的耦合度,那我们就不需要思考了嘛?不,微服务架构这么复杂,若是再没有一点规矩,那不是乱了套了嘛。正所谓家有家法、行有行规,微服务也有人家的一套准则,至于准则是什么,这章我们不来细说,我把微服务的服务拆分准则和远程调用的方法放在本专栏的下一篇文章中,这篇文章,风哥仅仅带大家了解下微服务,目的是为了提起大家的学习兴趣,如果这个章节太过繁琐,知识点过多,怕是会劝退很多小伙伴啊😂。
2 微服务初识
首先,看了上边,相信小伙伴们对微服务有了一个整体上的了解,但是却有着不清晰的概念,接下来,风哥给大家梳理一下。
微服务的架构特征:
- 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
- 自治:团队独立、技术独立、数据独立,独立部署和交付
- 面向服务:服务提供统一标准的接口,与语言和技术无关
- 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
正是由于微服务这样的标准,才使程序间进一步啊降低了耦合度,实现了服务的独立性和灵活性,从而更好地做到了高内聚、低耦合。
所以( ̄▽ ̄)*,我们可以认为微服务是经过了一个良好设计的分布式架构方案。
但是,众所周知,每个方案的基石就是技术栈,而在中国乃至全世界,Java领域最引人注目的就是Spring公司提供的SpringCloud架构技术。
3 SpringCloud
SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud。
同时SpringCloud集成了很多微服务功能组件,并且它基于SpringBoot对这些组件实现了自动装配,从而能让各位在使用中有着良好的开箱即用的体验。
其中常见的组件包括以下几个:
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**