# Spw.Snowflake **Repository Path**: rajscode/spw.-snowflake ## Basic Information - **Project Name**: Spw.Snowflake - **Description**: C# 雪花算法 生成分布式ID - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2020-11-13 - **Last Updated**: 2023-10-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spw.Snowflake #### 介绍 C# 雪花算法 生成分布式ID * Snowflake ID组成结构:正数位(占1比特)+ 时间戳(占41比特)+ 机器ID(占5比特)+ 数据中心(占5比特)+ 自增值(占12比特),总共64比特组成的一个Long类型。 * 第一个bit位(1bit):long的最高位是符号位代表正负,正数是0,负数是1,一般生成ID都为正数,所以默认为0。 * 时间戳部分(41bit):毫秒级的时间,不建议存当前时间戳,而是用(当前时间戳 - 固定开始时间戳)的差值,可以使产生的ID从更小的值开始;41位的时间戳可以使用69年,(1L << 41) / (1000L * 60 * 60 * 24 * 365) = 69年 * 工作机器id(10bit):也被叫做workId,这个可以灵活配置,机房或者机器号组合都可以。 * 序列号部分(12bit),自增值支持同一毫秒内同一个节点可以生成4096个ID