Java 项目实战营总结
介绍
时间飞逝,不知不觉小马哥的项目实战营就要结束了,从今年 2 月份开始到 6 月 30 日最后一节课结束,短短 3 个多月的直播课程,让我收获了很多很多。
具体来讲,实战营分为了 4 大模块
J2EE
SOA
微服务
云原生
J2EE
原以为 J2EE 会是我比较熟悉的领域,毕竟入行比较早,早期的时候,我也都是用 J2EE 的框架来进行开发的,Servlet、Filter 都是我熟悉的,早期也曾因为讨厌 Struts 的繁杂,基于 Servlet 和 Spring 自己做了一个类似于 SpringMVC 的框架,与客户端使用 JSON 格式来交互,虽然功能简单,但是也支撑了好几个项目。
用到的技术栈:
J2EE
JPA
JDBC
Bean Validation
Java Logging
Maven
Tomcat
JNDI
JNDI 确实让我学习到了,以前一直以为 JNDI 就做做共享数据连接池,没想到 JNDI 也能做类似依赖注入的功能,再次被小马哥的知识面所折服。
SOA
SOA 架构,也就是在给中国电信做音乐客户端外包的工作中,接触了一下,了解的并不深入。
微服务
微服务的最近几年都比较火热,我大概是从 2015 年做一个外包项目的时候了解了 dubbo 的,当时还是 dubbo2.6 以下的版本,说实话,没看懂 dubbo 的设计,但是不妨碍我去使用它。那个项目不大,我们也没划分出来几个微服务,就是把一些公用的东西放到一个服务里面了,可以让几个端侧的 API 服务来调用。
但是去年做的一个项目是完整的使用了微服务架构的了,划分了大概 6 个微服务吧,有 鉴权、会员、订单、支付、房源、支撑 这几个服务,使用了 Spring Cloud Alibaba 的整套框架,接口前端采用的 Spring Cloud Gateway 来做网关鉴权,使用 Spring Cloud Sentinel 来做了限流。项目的开发效果比较好,但是工作量巨大,当时没有意识到问题,后来在学习《架构实战营》时,才知道“三个火枪手”原则,原来是我们微服务划分太多了,人员其实没有那么多,相当于每个人都要负责一个微服务。
云原生
云原生基本上就只是听说而已了,Docker 早期其实我也了解过,但是没有真正放在生产环境去用过,原因有 2 点:1 是当时 Docker 还没有那么大的影响力;2 是公司的业务比较小,够买的服务器都是 1C8G 的低端机器,用 docker 远不如手工部署。
K8S 和 GraalVM 那就更是听说过而已,基本没有实操过。
总结
通过这次的学习,小马哥带领我们从远古的 J2EE 到现代的云原生,对相关的技术通通介绍了一遍,首先扩大了我的知识面,原来还有那么多我不了解的技术;其次从内容深度上,让我知道原来 Dubbo 的底层实现是这样的,原来 SpringBoot,SpringCloud 的原理基础是那样的。对于小马哥的直播看一遍是不够的,未来我会多刷几次,并且将其中的大部分技术再更深入的了解。
评论