分布式架构
分布式架构设计与实现
分布式缓存:一致性哈希与虚拟节点
一致性哈希将哈希值空间组织成一个虚拟的环(0到2^32-1),节点和数据都映射到环上。数据沿顺时针方向找到第一个节点存储,当节点增减时只影响相邻节点的数据分布。
Raft共识协议:日志复制与领导者选举
Raft是一种管理日志复制的共识算法,通过领导者选举、日志复制和安全性三个核心机制保证分布式系统的一致性。相比Paxos,Raft更容易理解和实现。
分布式存储:GFS/HDFS/Ceph/MinIO架构
GFS(Google File System)和HDFS(Hadoop Distributed File System)采用经典的主从架构。NameNode(Master)管理元数据和命名空间,DataNode(Slave)存储实际数据块。
分布式调度:Quartz/XXL-Job/ElasticJob
分布式调度需要解决任务分片、故障转移、负载均衡、幂等执行等问题。不同框架采用不同的架构策略,但核心目标一致:保证任务准确、高效、可靠地执行。
分布式配置:CAP一致性与配置推送
配置中心需要在CAP之间做出权衡。大多数配置系统选择AP(可用性优先),保证配置读取的高可用,同时通过最终一致性保证配置的正确传播。
分布式追踪:OTel Collector与采样策略
分布式追踪通过TraceID和SpanID将跨服务的调用链串联起来。每个服务处理形成一个Span,所有Span组成一棵Trace树。OpenTelemetry是CNCF的可观测性标准,统一了追踪、指标和日志的采集。
分布式消息队列:Topic/分区与消费组
Topic是消息的逻辑分类,分区(Partition)是Topic的物理分片。分区是并行处理的基本单位,单个分区内消息有序,跨分区无序。
分布式Session:粘性Session、共享Session与JWT
单体应用的Session存储在单个服务器内存中,分布式环境下需要解决Session共享问题。常见方案包括粘性Session、Session复制、Session集中存储和无状态JWT。
分布式限流:Redis集群与双层限流
限流是保护系统稳定性的关键手段。常见算法包括固定窗口计数器、滑动窗口、漏桶和令牌桶。每种算法有不同的适用场景和特性。
分布式锁:可重入、自动续期与红锁
分布式锁需要满足互斥性、无死锁、容错性和可重入性。锁的实现方式取决于可用的协调服务(Redis、ZooKeeper、etcd等)。