主题
distributed-systems
该主题下共 3 篇笔记
distributed-systems
Guava 中的一致性哈希
介绍 Google Guava 的 Hashing 类中 consistentHash() 静态方法提供的一致性哈希实现:传入分片键和机器数量即可返回数据应落入的桶号,并解析其内部基于 LCG(线性同余)伪随机数算法的跳跃桶实现原理。
1 分钟阅读一致性哈希
介绍 1997 年 MIT 提出的一致性哈希算法:通过 2^32 的环形 Hash 空间让数据按顺时针落到最近的服务器节点上,解决分布式环境下的数据分布、节点故障与扩容问题,并使用虚拟节点平衡各服务器的数据堆积。
2 分钟阅读全局唯一ID设计
对比分布式系统中三种全局唯一 ID 生成方案的优劣:数据库自增(简单但难扩展)、UUID(全局唯一但占空间且无序)、Twitter Snowflake(41bit 毫秒时间戳 + 区域 + 机器号 + 序列号拼成 64bit long,趋势递增)。附带 Java 与 Python 版本的自定义 Snowflake 实现,并提醒注意 NTP 时间回拨与跨毫秒序列随机化等细节。
2 分钟阅读