2 个版本
0.1.1 | 2024年5月6日 |
---|---|
0.1.0 | 2024年5月5日 |
##301 in 配置
48 次每月下载
11KB
132 行
雪花
雪花是一个库,它提供了一个基于Twitter 的雪花逻辑的简单唯一ID生成实现。
+--------------------------------------------------------------------------+
| 1 Bit Unused | 41 Bit Timestamp | 10 Bit NodeID | 12 Bit Sequence ID |
+--------------------------------------------------------------------------+
逻辑
- 有两个组件 -
Generator
和Config
。 Config
有一个默认实现,它提供每毫秒 2 ^ 21 (2097152) 个唯一 ID(每个节点 1024 个,跨 2048 个节点)直到 2149 年(大约从纪元开始 139 年)。这些值可以根据需要自定义以支持更高的吞吐量或更长的唯一 ID 有效生成周期。默认配置使用以下详细信息 -- timestampBits - 42
- nodeIdBits - 11
lib.rs
:
雪花-UID
雪花-UID 是一个库,它提供了一个基于 Twitter 的雪花逻辑的简单唯一ID生成实现。
+--------------------------------------------------------------------------+
| 1 Bit Unused | 41 Bit Timestamp | 10 Bit NodeID | 12 Bit Sequence ID |
+--------------------------------------------------------------------------+
逻辑
- 有两个组件 -
Generator
和Config
。 Config
有一个默认实现,它提供每毫秒 2 ^ 21 (2097152) 个唯一 ID(每个节点 1024 个,跨 2048 个节点)直到 2149 年(大约从纪元开始 139 年)。这些值可以根据需要自定义以支持更高的吞吐量或更长的唯一 ID 有效生成周期。默认配置使用以下详细信息 -- timestamp_bit_count - 42
- node_id_bit_count - 11
示例
use snowflake_uid::{Config, Generator};
// Default config
let cfg = Config::default();
let mut gen = Generator::from(cfg, env::var_os("HOST_NODE_ID"));
let uid = gen.get();
// Custom config for more coarse window size and larger number of nodes in the cluster.
let cfg_2 = Config::from(40, 13);
let mut gen = Generator::from(cfg_2, env::var_os("HOST_NODE_ID"));
let uid = gen.get();