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