大厂不用SpringMVC的原因是什么?

作者:小傅哥
博客:https://bugstack.cn

沉淀、分享、成长,让自己和他人都能有所收获!

我在"经海" —— 路,地铁站这么多年啊,肝了这么多项目,卷了这么多技术,攒了这么多经验。不就是为了给兄弟们讲点在真实场景有用的干货吗?!

所以你问我手撕了Spring源码手撕了MyBatis源码,接下来是不要手撕SpringMVC源码了?其实不会的,因为互联网大厂做项目这么多年就没有几次用SpringMVC的!所以搞它干肾嚒?

一、为啥不用SpringMVC?

关于为什么不用 SpringMVC 或者很少使用这样的技术栈,ChatGPT 给出了这样的回答;

ChatGPT 的这个回答,非常正确 。有了 ChatGPT 可以谨防上当受骗!


互联网现代分布式架构应用技术主要以 RPC 通信的微服务模型为主,代表技术如;Dubbo、gRPC、Thrift,它们的通信协议为 RPC 协议(Remote Procedure Call,远程过程调用),这样的调用方式可以提高微服务间的通信性能。

但这样的 RPC 却不是 WEB、H5、小程序 的 HTTP 调用,所以通常需要把 RPC 转换为 HTTP 协议。那么怎么转换,总不能一个个在 SpringMVC 中硬编码吧,这不是胡来吗!所以在互联网大厂应运诞生了 API 网关项目,它可以通过RPC服务的注册和发现机制,把接口注册网关中心,再通过网关算力执行接收 HTTP 请求协议进行解析做 RPC 接口的泛化调用。这中间还包括了;认证、授权、风控和服务治理的相关事项。

二、手写一套网关

讲道理,学习源码框架最行之有效的办法就是上手,看是看不会的,只有事必亲躬、亲力亲为的体验才能掌握框架的原理和精髓。所以小傅哥在学习这类东西的时候一直也是喜欢上手实践,一次花充足的时间折腾一件事,比反反复复的毛毛躁躁的学习要用的多。

所以从22年的8月开始一直到今天,小傅哥都会在周末的时候研究API网关的设计和代码实现,在这将近8个月的时间里终于完成了API网关的框架结构和核心流程,微服务工程数6个,代码行数总计1万以上。实现了;协议转换服务映射调用鉴权注册中心上报接口管理后台等模块功能,代码使用了众多的分治、抽象和设计模式等思想,保证整体代码的高质量和可维护性。

工程信息

https://t.zsxq.com/0ciYdgP5u

管理后台

https://t.zsxq.com/0ciYdgP5u

运行效果

https://t.zsxq.com/0ciYdgP5u

慢工出细活,只有把每一个知识点都经过深思熟虑的设计,才能做出行之有效的解决方案。也能让参与者在这里学习到有价值的内容。接下来小傅哥在分享下这块的架构模型,看看整体这套网关是如何被运行的。

三、网关架构设计

API网关除了基础的功能模块以外,还需要重点考虑负载均衡的设计,只有这样才能被横向扩展支撑高并发的吞吐量。所在负载设计这块,小傅哥也是花了不少的时间来构建,让负载可以被动态的管理。

https://t.zsxq.com/0ciYdgP5u

这是一整套API网关的核心通信模型结构图,以API网关算力的多套服务注册到网关中心开始,拉取RPC应用接口并完成映射HTTP调用操作。最终允许用户通过 Nginx 访问和路径重写的负载均衡管理,调用到具体的网关算力中执行协议解析和RPC接口的泛化调用并最终返回结果数据。—— 就这套架构设计学习完,就够你晋升到P7岗了!

整个网关模型的复杂度较高,这里的简述还不能概括出全部的核心,所以小傅哥计划对加入学习的伙伴,后期组织一场网关架构设计的技术直播来讲解里面的具体实现。

四、加入源码学习

不好好深度学习,再过几年35了,你得遭老罪喽。

当然小傅哥也不瞎扯,这是一套付费学习项目。在小傅哥花费了大量的周末、假期所沉淀出的技术经验,为有需要技术成长的伙伴开一扇可以进入学习的门。这对新人和有技术提升诉求的伙伴来说非常有必要,因为没人带的时候,自己要浪费很长时间摸索,也找不到正确的路。学习链接:https://t.zsxq.com/0ciYdgP5u

展开阅读全文

页面更新:2024-04-19

标签:网大   网关   架构   源码   模型   接口   协议   原因   代码   项目   技术

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top