前言
ok,这周是关于课内和Java部分的复习,人工智能那块东西太多了 ,光光一个学习吴恩达的学习笔记我就不知道要整理多少,何况还有别的。所以随缘吧,这周是java部分,课内的其他的东西,例如操作系统什么的,书上写的比我这牛皮的多,只不过java比较特殊,偏向实战,需要动手。当然还有个原因就是这个java期末作业,没时间了,我就打算把原来写的聊天室改成微服务项目,凑合一下,顺便对自己以前玩的复盘,说实话这写东西真的就是以前寒假玩的,这个学习java方面我个人觉得没什么太大长进,一堆事情,所以以后也是打算适当free一下,老子要把经历放在自己感兴趣的地方,去尼玛的比赛,要么别打,要么那个国奖玩玩,省奖什么玩意,浪费时间。
SpringCloud基本体系
SpringCloud 做了一个非常厉害的事情,那就是把我们常用的微服务的组件做了一个整合,并且基于SpringBoot 使得约定大于配置,大大简化了分布式微服务架构的难度。
大体的技术体系我们可以看下图:
当然这里还有很多玩意,例如消息队列(rabbitmq,kafka,分布式搜索,分布式缓存,分布式存储等等这些中间件,总体上技术如上图)
基本上想玩的话,搞个 gateway,openfeign,eureka(nacos) 也能玩了。后面这里应该是会有一个实战的,如何把一共SpringBoot单体项目拆分为分布式微服务项目。没办法,java期末作业就它了,本来是像完成上个学期没有完成的社区的,但是没时间,只能暑假看看有没有空了(第一次发现时间好像不是受我本人支配...)
环境
我们这里采用的环境为idea2021,maven 3.6,java8(万年版本)。然后由于这个SpringCloud和SpringBoot的版本之间是有要求的,所以我们的boot不能乱来,我们需要参考这个表
这个表在官方里面有。 也可以在这里看:start.spring.io/actuator/in… 不过你需要解析一下(结果如下图):
玩的时候SpringBoot 版本不能太高,所以我这里还是用2.3.x
工程创建
ok,我们先来一开始最容易劝退,然后最容易出现问题的部分,工程创建部分。
由于组件的问题,我们需要先创建一个父工程,原因很简单,第一由于这个版本的问题,我们需要一个父工程来统一配置,做一个版本仲裁,避免出现由于微服务之间组件的版本之间的问题带来的配置灾难。第二个就是由于这个服务可能会比较多确实需要一个父工程来瞅瞅。