后端微服务到单体的回归

· 约 260 字 · 预计阅读 1 分钟 ·

架构的钟摆

软件架构如同钟摆,从单体 (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需要起十几个容器

Server Room

评论