从夯到拉,锐评 28 个后端技术!
大家好,我是程序员鱼皮。从夯到拉,锐评 28 个后端技术,一口气说完!

正式开始前先郑重声明,每个后端技术都有自己的应用场景,很多时候没办法完全公平地去比较。本期鱼皮只是希望帮大家学到知识、认识更多的技术。而且由于我是个学 Java 的,也会带有一定的主观性,某些跟语言绑定的技术我会以 Java 生态作为例子。
大家也可以在评论区打出自己的评价,看看跟我想的是否一样。
⭐️ 本文对应视频版:https://bilibili.com/video/BV1HiqQBgEoN
评价维度
接下来我将从 5 个维度来评价这些后端技术:
-
实用性:能解决多少实际问题
-
生态成熟度:包括社区活跃度、文档完善度、第三方库丰富度等
-
学习成本:上手难度和学习曲线
-
性能表现:比如吞吐量、响应速度、资源占用等
-
维护成本:后期迭代和排查问题的难度
作为开发者,我个人最看重的是实用性和生态成熟度。毕竟技术是用来解决问题的,生态好意味着遇到问题能很快找到解决方案。
后端技术从夯到拉排行榜
1、Spring 【顶级】
上来就是重量级,这是 Java 后端开发的绝对霸主,企业级应用的基石。Spring 框架统治 Java 企业级开发十几年,IoC 容器和 AOP 编程思想深入人心,从 Web 开发、数据访问、批处理到安全认证,Spring 全家桶都能给你安排的明明白白。国内大厂标配,社区活跃度非常好,出了 Bug 很快就能找到解决方案。但缺点是传统的 Spring 配置比较繁琐,给到 顶级。

第二个:Spring Boot 【夯】
Spring 的亲儿子,Java 快速开发的不二之选。约定大于配置,能够轻松整合 Spring 全家桶,开箱即用。自动配置省心省力,内嵌服务器一键启动,几行代码就能跑起来一个 Web 应用。缺点是依赖太多,打包文件动辄上百 M,而且启动速度慢、内存占用高。不过现在有了 GraalVM 原生镜像技术,这些问题正在被改善,考虑到 Java 后端标配的江湖地位,必须给到 夯!

3、EJB 【拉】
全名 Enterprise JavaBeans,企业级 Java 的黑历史。当年 Sun 公司力推的重量级框架,配置复杂到离谱,开发效率低、性能还差。正是因为 EJB 太难用,才催生了 Spring 框架的诞生。现在已经被淘汰,毫无疑问给到 拉!

第四个:Docker 【夯】
容器化技术的绝对王者,解决环境一致性问题的神器。Docker 把应用和环境打包在一起,开发环境和生产环境完全一致,再也不用听 “在我机器上能跑啊” 这种鬼话。它很轻量、秒级启动、资源占用少,是微服务架构的基石,也是 CI/CD 的好搭档。Docker 的学习曲线友好,文档齐全,社区活跃到爆炸。唯一的缺点可能就是 Windows 上体验稍差,但瑕不掩瑜,给到 夯!

第五个:Kubernetes 【顶级】
容器编排领域的霸主,云原生的核心技术。简称 K8s,是管理成百上千个 Docker 容器的神器。自动扩缩容、服务发现、负载均衡、滚动更新全都给你安排的明明白白,大厂标配。但学习难度较大,配置文件能把人绕晕,小项目没必要用它,适合大规模集群和复杂场景,给到 顶级。

第六个:Redis 【夯】
高性能键值存储数据库,缓存界的扛把子,快到飞起。它支持字符串、列表、哈希、集合、有序集合五大数据结构,常用于实现缓存、分布式锁、排行榜等。它的核心处理逻辑采用单线程,持久化方案成熟。唯一要注意的是内存成本和数据一致性问题,必须给到 夯!

第七个:Memcached 【NPC】
缓存界的老前辈,简单的分布式内存缓存系统。它简单纯粹,就是个键值存储,性能也还不错。但是功能太单一,只支持字符串、没有持久化,没有主从复制、扩展性差。现在基本被 Redis 全面碾压,只有一些老项目还在用,给到 NPC。

第八个:MySQL 【夯】
关系型数据库的常青树,国内使用率最高的数据库。ACID 特性保证数据安全,事务支持完善,开源免费,中小企业首选。虽然复杂查询性能一般、功能扩展性不如 PostgreSQL,但凭借超高的普及度和成熟的生态,给到 夯!

9、PostgreSQL 【顶级】
据说是功能最强大的开源数据库。支持 JSON、数组、地理信息、向量(通过插件实现)等复杂类型,扩展性极强,适合复杂查询和数据分析场景。性能和稳定性都不输 MySQL,甚至在某些场景更优秀,但是我这里只能给到 顶级。

我知道有同学不服,从技术角度看,PostgreSQL 确实更胜一筹,但是目前国内生态不如 MySQL,遇到问题后解决的成本更高,学习难度也更大。虽然 AI 给 PostgreSQL 助力了,但再三考虑现在还是只能给到 顶级。
第十个:MongoDB 【人上人】
NoSQL 文档数据库的代表,存储 JSON 格式数据,Schema 非常灵活,查询语言直观,容易上手,横向扩展也很容易,适合快速迭代的项目。但事务的处理能力上还是不如传统关系型数据库成熟,适合内容管理、日志存储等不需要强一致性的场景,给到 人上人。

第十一个:Nginx 【夯】
Web 服务器和反向代理的王者,高性能 HTTP 服务器。它的高并发处理能力强悍,占用资源少,性能吊打 Apache,使用场景也很多,负载均衡、静态资源服务、SSL 卸载样样在行。学习成本也不高,在我这给到 夯爆了!

第十二个:RabbitMQ 【人上人】
功能完善的经典消息队列。基于 AMQP 协议,支持多种消息模式,路由灵活;自带管理界面,监控方便。但性能不如 Kafka,吞吐量有限,适合中小规模的异步处理场景,给到 人上人。

第十三个:Kafka 【顶级】
那么下一个自然是消息队列的性能怪兽 Kafka,分布式流处理平台。吞吐量很大,百万级 TPS 轻松拿下,而且采用分布式架构,可靠性高,是日志收集 / 流式计算的标配、大数据场景的基础设施。不足之处是运维复杂,学习成本高,消息顺序性和重复消费需要仔细处理,给到 顶级。

14、Elasticsearch 【夯】
搜索引擎界的一哥,分布式搜索和分析引擎。基于 Lucene,全文搜索速度贼快;采用分布式架构,能应对 PB 级数据。除了搜索外,还能用来做日志分析、数据可视化,是 ELK 技术栈的核心。不足之处是资源占用较高,有一定的调优难度。但毕竟是搜索场景必备技术,给到 夯!

15、Git 【夯】
版本控制的绝对霸主,分布式代码管理工具。它采用分布式架构,每个开发者本地都有完整的代码仓库,分支管理能力强大,合并冲突的处理机制完善。再加上 GitHub、GitLab 等平台的生态加持,已经成为开发者必备技能,不会 Git 基本就告别开发了,给到 夯爆了!

第十六个:SVN 【拉】
上古时代的集中式版本管理系统。采用集中式架构,必须联网才能提交代码,分支管理能力弱,处理合并冲突比较麻烦。Git 出来之后被按在地上反复摩擦,现在还在用 SVN 的基本都是十年前的老项目。真的该淘汰了,给到 拉!

第十七个:gRPC 【顶级】
Google 出品的高性能 RPC 框架,微服务间通信的利器。RPC 就是远程过程调用,让你调用远程服务就像调用本地方法一样简单。
gRPC 基于 HTTP/2 协议,性能强悍,使用 Protocol Buffers 序列化,使得体积小速度快,流式传输支持也很完善;而且还支持多种编程语言,是跨语言服务调用的首选,给到 顶级。

第十八个:Dubbo 【人上人】
阿里开源的高性能 RPC 框架,国内微服务的老大哥。性能优秀,支持多种通信协议和负载均衡策略,服务治理功能也很完善。国内文档和案例还算丰富,但是国外用的少,给到 人上人。

19、Nacos 【人上人】
阿里出品的服务发现和配置中心,微服务治理的新秀。它提供了友好的配置管理界面,支持多种服务注册模式,灵活性高,是 Spring Cloud Alibaba 的核心组件。但跟 Dubbo 一样,国际化程度不够,给到 人上人。

20、Zookeeper 【NPC】
分布式协调服务的老前辈了,能够实现配置管理、服务发现、分布式锁。具有强一致性保证,数据可靠。但缺点是运维复杂,并且在大规模集群下写性能和选举恢复速度一般。随着 Kafka 转向 KRaft 架构以及 etcd 在云原生领域的霸权,ZK 正在慢慢退居二线,只能给到 NPC。

21、etcd 【顶级】
Go 语言编写的分布式键值存储,云原生时代的协调服务。它是 Kubernetes 的御用存储,基于 Raft 协议实现,有强一致性保证,性能比 Zookeeper 好。它的 API 简洁,同时支持 HTTP 和 gRPC 接口。缺点是国内生态一般,中文资料相对较少。但作为云原生场景首选,我相信它火起来只是时间问题,给到 顶级。

22、Prometheus 【人上人】
开源的系统监控和告警工具集。采用 Pull 模式采集数据,配置灵活,提供 PromQL 查询语言,还可以和 Grafana 可视化工具完美搭档。但长期存储需要额外方案,而且告警规则配置有点繁琐,维护成本确实不低。考虑到监控的重要性和云原生的趋势,给到 人上人。

第二十三个:Jenkins 【人上人】
CI/CD 的老大哥,持续集成的经典工具。流水线配置灵活,插件生态非常丰富,开源免费,社区活跃。但问题也很明显,界面老旧,用户体验一般;配置复杂,新手容易懵;而且资源占用较高。虽然 Jenkins 仍然是企业级 CI/CD 的主流选择,但很多开发者去拥抱 GitHub Actions、GitLab CI 这些体验更好的新工具了,给到 人上人。

第二十四个:GraphQL 【NPC】
API 查询语言的新贵,灵活的数据获取方案。客户端可以按需获取数据,一个接口就能搞定所有查询,告别 RESTful 的接口爆炸问题,适合前端复杂的项目使用。
但学习成本高,在国内应用场景相对有限,大部分公司还是用 RESTful,给到 NPC。

第二十五个:Swagger 【人上人】
接口文档自动化工具。可以通过注解自动生成接口文档,还提供在线调试功能方便测试,支持多种编程语言,是前后端协作的神器。
但是相比数据库、缓存这些基础设施,Swagger 并不算刚需,现在用 AI 或者 Postman 也能搞定接口文档,给到 人上人。

第二十六个:Tomcat 【NPC】
经典的 Java Web 容器,曾经的王者,支持 Servlet 和 JSP 规范,配置灵活,文档完善。但现在 Spring Boot 内嵌服务器一键启动,谁还单独部署 Tomcat 啊?而且你敢信,甚至有同学都不知道 Tomcat!而且它的性能也不如 Undertow。时代变了,只能给到 NPC。

27、Struts 【拉】
Java Web 框架的老古董,MVC 框架的先驱。曾经风光一时,和 Spring、Hibernate 组成 SSH 三剑客。但架构老旧、漏洞频出、性能一般、学习成本高,现在应该没有新项目在用了吧?妥妥的 拉中拉!

28、JSP 【拉】
Java 服务端页面技术,前后端混合开发的产物。把 Java 代码和 HTML 混在一起写,性能差、调试困难、代码混乱,维护起来简直是噩梦。
现在都前后端分离了,谁还用 JSP 啊?给到 拉!

最后
最终排行如图:

OK 就分享到这里,如果你们还想看哪些技术的排名,或者你觉得哪个技术的排名不合理,都可以在评论区告诉我哦。我是鱼皮,关注我,带你解锁更多编程和 AI 知识~

事先郑重声明,每个后端技术都有自己的应用场景,很多时候没办法完全公平地去比较。本期鱼皮只是希望帮大家学到知识、认识更多的技术。而且由于我是个学 Java 的,也会带有一定的主观性,某些跟语言绑定的技术我会以 Java 生态作为例子。
浙公网安备 33010602011771号