CC 咖啡猫的工作空间 Coding Space
  1. 分布式锁:用于在分布式环境中确保多个节点对共享资源的互斥访问的机制。
  • 实现方式:redis(setnx + 过期时间,性能高,可能会导致死锁)、zk(临时有序节点,可靠性高,性能较低)、etcd(Lease+租约机制,强一致性,复杂度高。应用场景:k8s)
  1. 分布式事务:跨多个数据库/服务的事务操作,保证原子性和一致性
  • 解决方案:2pc/3pc、TCC、可靠消息最终一致性(本地事务+消息表、定时任务扫描消息、消息队列+消息者确认)、seata分布式事务
  1. CAP理论:强一直场景选CP、高可用场景AP、大多数系统(降低一致性要求换取可用性BASE)
  2. BASE理论:基本可用(允许系统在故障时降级)、软状态(系统可以中间态,不需要实时一致)、最终一致性(系统在一段时间后到达一致状态)
  • 实践策略:读写分离、异步解耦、补偿机制、版本控制(乐观锁)
  1. Paxos算法:最早的共识算法(即选举Leader节点)
  • 算法流程:Prepare阶段、Accept阶段
  1. Raft协议:基于Paxos改进的共识算法(信任所有节点,默认系统不存在拜占庭将军问题,假设集群可信)
  2. 拜占庭问题:存在恶意节点,可能发送虚假消息(通常区块链系统需要处理叛徒节点的问题,解决方案:工作量证明PoW、权益证明PoS等共识算法)
  3. Gossip协议:最终一致性的分布式协议,即所有节点的状态同步,也就是让集群中的每个节点整体情况(其他节点是否存活、节点数据是否最新、节点的负载信息、集群拓扑情况等等)
  4. 一致性哈希算法:解决数据分片问题,也就是把数据均匀分布在不同的节点上,每个节点只存储部分数据