分布式
负载均衡算法
轮询、加权轮询、最小连接数、一致性哈希等。
- 轮询:按顺序将请求分配给每个服务器。
- 加权轮询:根据服务器权重分配请求。
- 最小连接数:将请求分配给连接数最少的服务器。
- 一致性哈希:根据请求的哈希值分配服务器,减少节点变动影响。
分布式事务算法,比如Raft, Paxos
- Raft:一致性算法,易于理解和实现。
- 特点:通过选举、日志复制、日志提交保证一致性。
- 适用场景:分布式系统中的一致性问题。
- Paxos:一致性算法,复杂但性能好。
- 特点:通过提议、投票、提交保证一致性。
- 适用场景:分布式系统中的一致性问题。
Hash环与分布式缓存
- 一致性哈希:解决节点动态变化的问题,减少数据迁移。
- 特点:将数据分配到多个节点,节点变动时只影响部分数据。
- 适用场景:分布式缓存、分布式存储。
- 分布式缓存:将缓存分布到多个节点,提高性能和可用性。
- 特点:数据分布在多个节点,支持高并发访问。
- 适用场景:高并发、高性能的应用,如电商系统。
利特尔法则,及其应用
利特尔法则:L = λW,用于分析排队系统。
- L:系统中的平均数量。
- λ:平均到达率。
- W:平均等待时间。
- 适用场景:分析系统性能、优化资源配置。
限流与熔断,限流的各类算法
- 限流:令牌桶、漏桶算法。
- 令牌桶:按照固定速率生成令牌,请求需要消耗令牌。
- 漏桶:按照固定速率处理请求,超出部分丢弃。
- 熔断:防止系统过载,保护服务。
- 特点:当系统负载过高时,自动拒绝部分请求,防止系统崩溃。
- 适用场景:高并发、高负载的应用,如微服务架构。
CAP理论
一致性、可用性、分区容错性,三者不可兼得。
- 一致性:所有节点在同一时间看到相同的数据。
- 可用性:每个请求都能收到响应。
- 分区容错性:系统在网络分区的情况下仍能正常运行。
- 适用场景:分布式系统设计,权衡不同特性。