文章最后更新时间:
【免责声明:本文由AI辅助生成,内容仅供参考,不构成专业建议。】
分布式系统设计原则完全指南:从CAP定理到一致性模式的实战总结
分布式系统是现代架构的核心。本文分享分布式系统设计原则和实战经验总结。
CAP定理
定义:分布式系统无法同时满足一致性(Consistency)、可用性(Availability)、分区容错(Partition tolerance)。
CP系统:放弃可用性,保证一致性。如Zookeeper、HBase。
AP系统:放弃一致性,保证可用性。如Cassandra、DynamoDB。
选择策略:根据业务需求选择CP或AP。不要追求同时满足。
一致性模型
强一致性:任何时刻所有节点数据一致。写入后立即可读。
弱一致性:不保证立即一致,但最终会一致。
最终一致性:弱一致性的特例。允许短暂不一致,但保证最终一致。
因果一致性:保证有因果关系的操作顺序。
读己之所写:自己写入的数据立即可读。
分布式事务
两阶段提交(2PC):准备阶段+提交阶段。强一致但有阻塞问题。
三阶段提交(3PC):引入超时机制。减少阻塞但更复杂。
TCC:Try-Confirm-Cancel。业务层实现,更灵活。
Saga模式:长事务拆分。补偿机制替代回滚。
本地消息表:可靠消息实现最终一致。常用方案。
数据分区
哈希分区:根据Hash值分区。数据分布均匀。
范围分区:根据数据范围分区。适合范围查询。
一致性哈希:减少扩缩容数据迁移。虚拟节点平衡负载。
分区策略:根据数据量和查询模式选择。
负载均衡
轮询:简单公平。不考虑服务器性能差异。
加权轮询:根据服务器性能分配权重。
最少连接:分配给连接数最少的服务器。
IP哈希:同一IP的请求分配给同一服务器。会话保持。
健康检查:自动剔除故障服务器。
服务发现
DNS:简单但更新慢。有缓存问题。
Zookeeper:强一致,但复杂度高。
Etcd:分布式键值存储,支持服务注册发现。
Consul:支持多数据中心,内置健康检查。
Eureka:Spring Cloud常用,高可用。
容错设计
重试机制:设置合理的重试次数和退避策略。超时控制:设置请求超时,避免长时间等待。熔断器:防止故障级联传播。限流:保护系统不被突发流量压垮。降级:服务不可用时提供兜底方案。
更多技术文章:https://blog.hanyucloud.com | 客服:400-880-3980

















暂无评论内容