关于这三个月的小结
初识Java
开始想着工作的事情是在今年的五月
其实想起来就挺莫名其妙的,既然有工作的地方为什么不早早的出来实习?
就算考研的话也可以考完研就开始考虑这件事情吧
甚至于之前还跟着学校去培训班进行所谓的实习
不过挺好玩的,在郑州不上课的时候天天跟舍友玩星露谷
okok,这不是不工作的理由!
刚开始纠结了好久,在想学前端还是后端
还记得很久之前,面对的问题是学硬件还是学软件
Y老师还“悉心教导”说快选物联网,做硬件可好玩了
懵懂无知的我就这样学了物联网
又想起来他给我发X上面的互联网公司发布的招聘信息
我直接半宿没睡注册X账号
还跟那个公司的人事姐姐劈里啪啦聊了大半天
然后兴冲冲的问Y老师的X账号是什么,我可以关注他
结果他回了个邪恶表情包说,我怕被抓,没注册
我:?!?!?!?!?
算了,Y老师,是这样的
起初只是觉得学硬件可以去实验室
这样期末就不用去抢座位复习了
后来我们专业可能是有钱了,直接搞了一个大实验室
实验室一正规还怎么摸鱼呢?
那就学硬件吧,不是说硬件越老越值钱吗
然后呢?
然后
一个冒烟的51单片机,毁了我的硬件工程师梦……
(可能是我幻视冒烟,但是真的好吓人)
好像扯远了
最后选择做后端是觉得学都学了,简单也是学,难的也是学
直接开启困难模式好了
但是当时还是太天真了
完全不知道这根本不是困难开局,是天崩开局
学一学Java基础
5小时速通数据库
10小时springboot框架
小项目做几个
后端工程师这不是轻松胜任?
我那时候甚至觉得所谓的框架,就像一个空的书架,你随便放点书进去就可以了
所以这么简单的东西明天再学吧
嗯……我每天都这么想
所以从五月又玩到了九月……
这才是Java?
如果问我到目前为止学Java过程中最后悔的事情是什么
那我一定会告诉你是一开始选择了一门大约80小时的Java基础课
打好基础是很重要
但是80小时足够让一个满怀热忱的小姑娘道心破碎
再加上耽于玩乐的我觉得上班时间一结束就不应该再提及任何关于工作和代码的事情
于是,九月过去了,我的Java基础还是没学完……
九月底的时候老大让我去沈阳出差
同事要去那边部署项目,顺便给我讲讲公司的框架
我自己评估一下大概多久能上手
嗯…我吗?Java基础都没学完的我吗?
所以在沈阳的经历大概是这样的
“你之前接触过哪些技术?Springboot之类的框架用过吗?”
“没有。”
“……”
—全剧终—
从沈阳回来以后我开始觉得不能再学基础了
再学下去黄花菜都凉了
所以直接开始学spring boot,开启我的大神之路?
No No No
孩子,你还有一大堆东西没学呢
java基础和springboot之间隔着一整个太平洋的距离
太平洋里的不是海水,是我当初脑子进的水T^T
我问了当时在社团学Java的同学,于是有了下面的对话
“Java基础学完之后学mysql,jdbc,Javaweb,maven,git,mybatis,spring,springmvc,springboot,差不多这个流程。”
“有没有什么速成路径?”
“jdbc,Javaweb可以暂时先跳过,mybatis有时间学一下,或者在学springboot的时候一起学。”
我凌乱了
我像个从山里出来的原始人,刚刚窥探到现代社会的真相
那种感觉很难说,就像你重金买了个西瓜结果切开发现里面全是香菜
食之无味,弃之可惜
可惜世上没有早知道
就硬着头皮学吧
乱七八糟
maven
git
javaweb(学了两天感觉可以跳过就没学了)
MySQL
SSM框架(Spring SpringMVC Mybatis)
苍穹外卖
Mybatis-Plus
Redis
SpringCloud
完成这一系列以后就到了今天
没错,就在刚刚我看完了这些所有东西
抛开有没有学会来说,反正我看完了-_-
虽然这里面还有很多天天说的脏数据……
反正我看完了
原本应该在5-9月之间,轻松愉悦的完成的任务
在我被骂了n多次以后
它终于学完了
(555555,我以后再也不会这样了)
什么才是Java?
因为有很多重复的代码,也为了简化开发,java注解诞生了
为了实现低耦合,高聚合,ssm框架出现了
但是单体架构开发还是耦合度太高,所以我们用微服务进行开发
微服务
那各个微服务间如何调用?
使用RestTemplate的API,可以方便的实现Http请求的发送
这种手动发送Http请求的方式还是耦合度很高呀!
使用Nacos注册中心
- 服务提供者注册自己的服务信息(服务名、IP、端口)到注册中心
- 服务调用者从注册中心订阅想要的服务,获取服务对应的实例列表(1个服务可能多实例部署),发起远程调用
远程调用的代码太复杂了怎么办?
使用OpenFeign组件
主启动类使用@EnableFeignClients启用
定义接口,编写Feign客户端
在实现类中直接调用相关方法就可以发起远程调用
每个微服务都有不同的地址或端口,请求不同数据时要访问不同的入口,这不是很麻烦吗?
使用网关路由,解决前端请求入口的问题
每个微服务都需要编写登录校验、用户信息获取的功能吗?
网关鉴权,解决统一登录校验和用户信息获取的问题
微服务架构中服务间调用关系错综复杂,像串联电路一样,一个故障,整条电路都瘫痪了
使用微服务保护技术Sentinel,保证服务运行的健壮性,避免级联失败导致的雪崩问题
请求限流可以降低服务器压力,尽量减少因并发流量引起的服务故障的概率,但并不能完全避免服务故障
所以一旦某个服务出现故障,应该隔离对这个服务的调用,避免发生雪崩
微服务互相之间没有感知,不知道是否存在失败进程,无法保证最终结果的统一
使用分布式解决方案seata
找一个统一的事务协调者,与多个分支事务通信,检测每个分支事务的执行状态,保证全局事务下的每一个分支事务同时成功或失败即可
OpenFeign属于同步通讯,如何实现异步通讯?
使用开源消息通信中间件RabbitMQ
发送者不再直接同步调用接收者的业务接口,而是发送一条消息投递给消息Broker,然后接收者根据自己的需求从消息Broker那里订阅消息,每当发送方发送消息后,接受者都能获取消息并处理
遇到问题,解决问题
看起来一步接一步的像打怪升级一样
但是还好,这些问题都能解决
只要再努力一点
问题都能解决的
好了,摸鱼时间结束
掰掰