云原生架构模式
服务化架构模式 (SOA/微服 务/小 服务)
- 按业务域或功能模块拆分应用,每个模块作为独立服务运行,通过 {{c1 接口契约(API/ 协议)}} 进行交互。
- 常结合 {{c1 DDD(领域驱动设计)}} 进行服务边界划分, 用 TDD 提升 质量,并通过容器化与 CI/CD 管理快速迭代。
- 优点 → 灵活扩展、独立部署、降低 耦合;
- 缺点 → 分布式环境下治理成本高。
- 典型场景 → 电商订单、支付、库存拆分为 微服务。
Mesh 化 架 构 模 式 (ServiceMesh)
- 将中间件能力(RPC 通信、负载均衡、限流熔断、安全认证等)从业务进程中剥 离,由独立的 Sidecar/Proxy 组件(Mesh 进程)统一处理。#card
- 这样业务代码只需专注 逻辑实现,而网络通信、服务治理、可观测性由 Mesh 负责。
- 优点 → 统一治理、解 耦复杂逻辑,
- 缺点 → 引入额外性能开销。
- 典型实现 → Istio、Linkerd。
Serverless 模式
- 应用无需管理底层服务器,开发者只需编写业务逻辑代码,由云平台自动完成部署、 运行、弹性伸缩和关闭。#card
- 应用一般通过事件或流量触发执行,按调用次数或运行时 间计费。
- 优势 → 极大降低运维成本、按需伸缩,
- 劣势 → 冷启动延迟和厂商锁定风险。
- 典型场景 → 图片处理、日志分析、IoT 数据采集。
存储计算分离模式
- 将计算层与存储层解耦:计算节点保持无状态,数据全部存储在分布式存储/云存 储中。#card
- 有状态服务通过写前日志(WAL)+快照(Snapshot)机制实现恢复。
- 优点 → 是弹性伸缩、 成本优化
- 缺点 → 计算与存储分离带来延迟问题。
- 典型应用 → Snowflake、TiDB、云数仓。
分布式事务模式
- 在跨数据库/跨服务的事务中保持数据一致性,常见模式有:
- XA 模式 → 两阶段提交,强一致,但性能差。 消息最终一致性:通过消息队列异步保证,性能好但一致性延迟。
- TCC 模式 → 应用层显式 Try/Confirm/Cancel, 灵活但侵入性强。
- SAGA 模式 → 将长事务分解为本地事务+补偿操作,适合复杂业务流程。
- SEATAAT 模式 → 通过代理数据库操作实现自动回滚,性能较好,但受限于数据库 类型。
可观测架构
- 通过三大核心能力实现对系统运行状态的全面感知:#card
- Logging:多级日志,记录系统行为和错误。
- Tracing:分布式调用链路追踪,快速定位性能瓶颈。
- Metrics:系统指标采集与量化(QPS、响应时间、并发度等)。
- 结合 SLO/SLA 定义服务目标,用于监控、报警和运维优化。
- 典型工具 → Prometheus、 Grafana、ELK、Jaeger。
事 件 驱 动 架 构 (EDA)
- 系统以 {{c1 事件}} 为核心进行交互,事件作为独立数据单元,包含 Schema, 可被生产者 发布、消费者订阅。具备 QoS 保证和失败补偿机制。
- 优点 → 服务解耦、异步处理、 可扩展;
- 适合高并发、异步业务场景,如 → 订单完成触发发货、数据库变更触发缓存 更新。
- 常用技术 → Kafka、 Pulsar、EventBridge。