后端微服务到单体的回归
架构的钟摆
软件架构如同钟摆,从单体 (Monolith) 摇向微服务 (Microservices),如今又开始有向模块化单体 (Modular Monolith) 回归的趋势。
为什么中小团队不该攀比微服务?
- 运维成本激增
RPC调用的幽灵延迟- 网络分区难以排查
- 数据一致性的噩梦
“You must be this tall to use microservices.” —— Martin Fowler
Python 单体应用示例
展示一个干净的 FastAPI 全局错误处理架构:
from fastapi import FastAPI, HTTPException
from fastapi.responses import JSONResponse
app = FastAPI()
@app.exception_handler(HTTPException)
async def custom_http_exception_handler(request, exc):
return JSONResponse(
status_code=exc.status_code,
content={"message": "这是一种极简的统一错误抽象"},
)
对比表
| 维度 | 模块化单体 | 纯微服务 |
|---|---|---|
| 部署难度 | 极低,单个 Binary | 极高,Kubernetes 编排 |
| 新人上手 | 几天即可完整梳理 | 数周才能理清拓扑 |
| 本地启动 | make run | 需要起十几个容器 |