时隔半个月没研究技术了,最近一直在单位玩儿艺术,终于可以再战SpringCloud了,上篇(0)复习了一些springboot的常用注解插件等,这篇(1)应该也不会着手开始写SpringCloud的代码,先记一记SpringCloud这个微服务工具集(也可理解为一套解决方案)的杂项知识。
最近掉头发掉的厉害,每天早起看着枕头总是会伴着一声叹息😷 。
花了10块钱买了不良人老师的课件资料,真的太良心了,啥都有,这里就以老师总结的课件出发,来总结一下写代码前需要前置了解的一些知识。
1、微服务
首先说微服务,现在主流各大公司好多都有自己的一套微服务解决方案,那么微服务就是一个比较系统的概念(架构):
那么微服务一定是由单体应用演变进化而来,单体应用一定会存在劣势,然后进化出微服务。
做单应用项目初期还是比较轻松的,代码量小,好部署,好测试,但是随着项目的迭代更新,代码量越来越大,开发效率越来越低,也难以维护,而且如果代码中出现问题,基本就是牵一发动全身,整个项目就挂了。而且重构也基本不可能。
微服务因为是针对单应用的,所以优点比较明显:1、粒度小 2、高度自治(跨语言) 3、松耦合 缺点就是对开发人员和运维人员能力要求比较大嗷,服务治理和服务监控也比较麻烦。
2、应用架构的演变
ORM->MVC->RPC->SOA->SERVERLESS(个人猜想)
ORM我也没接触过,上大学时就直接从SpringMVC做起了,所以不知道从单应用架构到垂直架构具体有啥好处。。。分布式架构基本没用过,,不过分布式和微服务也差不多,毕竟微服务架构也是基于分布式的吧??直接贴下老师总结:
3、微服务架构技术选型
(1)、dubbo
dubbo11年阿里就提出来了,那阵生态好像还不错,可是从13年就不维护了,这一下长达4年多。虽然18年开始dubbo3.0开始做了,也在积极适配SpringCloud的生态,那么我还是选择SpringCloud吧。
(2)、springcloud
文章主要写的,而且也是日常在用的,所以没得说,干就完事了。
有一点注意是SpringCloud有三家公司都开源了相关产品,分别是Spring Cloud NetFlix、Spring Cloud alibaba、Spring Cloud Spring,需要配合着使用不同公司的不同组件。。。
4、SpringCloud
相关概念(核心:springcloud是为了完成微服务架构的工具集)和用到的组件:
这张图里除了没加熔断,其他的逻辑很清晰
5、SpringCloud环境搭建和版本选择
比较有意思的是SpringCloud早期都是以伦敦地铁站命名版本,小版本号最高到10,不过现在正常了,刚才访问了下官网,现在版本是2020.0.3。。。
要注意SpringCloud也是基于SpringBoot去构建的,所以两者的版本号一定要对应。
下一节开始写代码实例了。这次使用的版本环境
- springboot 2.2.5.RELEASE
- springcloud Hoxton.SR6
- java8
- maven 3.6.3
- idea 2020.3.2
注:写驼峰太累了,以后springboot、springcloud一律全小写。