文章探讨了微服务架构的实际应用与挑战,指出负载均衡、熔断等概念在微服务出现前已存在。微服务与MQ、Redis等关系有限,其核心在于解决“一崩全崩”问题,实现服务独立伸缩、升级及管理大量开发人员。然而,服务解耦常伴随“人未解耦”,导致实际收益有限。微服务将复杂度转移至基础设施,增加了代码量和隐形成本,多数公司难以消化。文章预测,在AI辅助编程效率提升的2025年,单体架构有望重归主流。
💡 微服务并非新生事物,其解决的负载均衡、熔断等问题在微服务出现前就已存在。微服务与消息队列(MQ)和Redis等技术的关联性被高估,其核心价值在于避免“一损俱损”的风险,并促进服务的独立伸缩、独立升级以及更好地管理庞大的开发团队。
👥 微服务架构的真正价值在于解耦复杂的人员和社会关系,而非仅仅是代码的解耦。然而,在许多实际项目中,服务实现了解耦,但负责开发和维护这些服务的人员并未实现独立,这削弱了微服务带来的实际收益。当服务数量远超人员数量时,微服务架构的优势难以体现。
📈 微服务架构并非免费午餐,其引入伴随着显著的成本。代码量通常会翻倍,并且会产生大量难以量化的隐形成本,例如基础设施的复杂性增加。文章指出,大多数公司难以有效消化这些成本。此外,微服务中的服务间依赖性使得单独升级单个服务变得困难,往往需要上下游服务协同升级。
🚀 随着AI辅助编程技术的飞速发展,开发人员的效率将得到极大提升。在2025年这一时间节点,文章预测微服务带来的复杂性和成本将不再具有吸引力,单体架构因其简洁性、易管理性和更低的总体拥有成本,有望重新成为主流选择,尤其适合那些并非强依赖于独立伸缩和升级的99%的项目。
- 单体不是单机,不是单模块
2. 负载均衡、熔断、降级在微服务出世前早存在了
3. 微服务和 MQ 、Redis 顶多只有半毛钱关系,微服务怎么用单体就怎么用
微服务尝试解决什么问题?
保障多个 p0 服务不会一崩全崩。然而实际上大多数微服务就是一崩全崩。
将服务独立,减少耦合。如果不同服务由不同部门/人员负责这是好的,实际上大多数使用情况是服务解耦人没有解耦。
微服务实际只解决了三个问题:
1. 服务独立伸缩
2. 服务独立升级
3. 管理大量开发人员
单体无法单独伸缩其中一个服务,只能全部一起水平扩容,这是确实存在的缺点,但 99%的项目并不需要该特性,基础建设很贵,机器很便宜。
单体无法单独升级一个服务,但这特性只是理论上听起来不错,微服务中的一个服务依赖其他服务,实际使用中很难单独只升级一个,需要上下游一起升级。
微服务不是管理代码的架构,而是管理开发人员的架构。解耦服务没有实际上的收益与意义,解耦复杂的社会关系才是其精华所在。然而现实中多少项目服务比人还多呢。
复杂度不会消失只会转移,微服务将复杂度转移到基础建设中,而大多数公司无法消化。微服务有成本,首先代码量就先翻个倍,除此之外还有更多隐形成本。
现在是泡沫破裂的 2025 年,AI 辅助编程让开发人员效率极大提升,往后应该是单体重登王座的时代。