Snowflake 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Snowflake 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Snowflake 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发
开源组织 Twitter
地区 不详
投 递 者 步影随月
适用人群 未知
收录时间 2016-06-16

软件简介

Snowflake是一项网络服务,可通过一些简单的保证大规模生成唯一的 ID 号。其优点是:高性能,低延迟;独立的应用;按时间有序。缺点是:需要独立的开发和部署。

  • 41位的时间序列(精确到毫秒,41位的长度可以使用69年);

  • 10位的机器标识(10位的长度最多支持部署1024个节点);

  • 12位的计数顺序号(12位的计数顺序号支持每个节点每毫秒产生4096个ID序号)最高位是符号位,始终为0。

Snowflake 是一个很高效很方便的GUID产生算法,一个int64_t字段就可以胜任,不像现在主流128bit的GUID算法,即使无法保证严格的ID序列性,但是对于特定的业务,比如用做游戏服务器端的GUID产生会很方便。另外,在多线程的环境下,序列号使用Atomic可以在代码实现上有效减少锁的密度。

目前,Snowflake 初始版本已退役。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (5)

加载中
有人用过 MySQLMaxValueIncrementer 吗 ?
2017/06/03 10:07
回复
举报
独立开发部署? #snowflake#
2016/07/04 08:45
回复
举报
研究过 #snowflake#
2016/07/04 14:27
回复
举报
还有其他好的方式吗? #snowflake#
2016/07/04 18:06
回复
举报
G.
两年前的, 而且已经停止更新了! #snowflake#
2016/07/04 19:57
回复
举报
更多评论
发表了资讯
01/04 09:16

DB-Engines 公布 2021 年度数据库:Snowflake

DB-Engines 宣布 Snowflake 获得“2021 年度数据库”称号。 DB-Engines 是全球知名的数据库流行度排行榜网站,其评选年度数据库的标准为:计算数据库当前最新流行度分数(2022 年 1 月)的同比增长量,分数增长最多的即为年度数据库。 年度 DBMS:Snowflake Snowflake 平台是一个完全托管的云服务,它整合了数据仓库、数据集市和数据湖,并支持针对这些方面运行分析。DB-Engines 称,Snowflake 不仅是第一个获得“年度 DB-Engin...

0
6
发表了资讯
2021/10/03 09:33

10 月数据库排行榜:Snowflake 上升三名;三巨头分数同比下降最多

DB-Engines 10 月份流行度排行已更新(基于 9 月份的整体数据变化)。 排名前十的数据库和上个月的保持一致,分别是 Oracle、MySQL、Microsoft SQL Server、PostgreSQL、MongoDB、Redis、IBM Db2、Elasticsearch、SQLite 和 Cassandra。分数方面,只有 MySQL 和 PostgreSQL 出现了明显的增长,分别增加了 7.24 和 9.47 分。 值得注意的是,排名前三的数据库的分数与去年同期相比,均出现了较大的下跌——事实上数据库三巨头每个...

5
8
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2015/10/20 15:51

修改自Twitter的Snowflake算法

<?php /**  * 得到唯一识别码  * 修改自Twitter的Snowflake算法  * 此算法支持分布式自增ID  * @author cwsky@163.com  */ abstract class Uniq {   //初始时间码,开站设定一次,可用以下语句得到   //floor(microtime(true) * 1000);   private static $twepoch = 1380553425155;   //数据中心,8表示可以有255个数据中心,最大取值为8   private static $dataCenterIDBits = 8;   //数据中心ID最大值   //pri...

0
1
发表了博客
2019/04/10 10:10

Twitter-Snowflake:自增ID算法

简介 Twitter 早期用 MySQL 存储数据,随着用户的增长,单一的 MySQL 实例没法承受海量的数据,后来团队就研究如何产生完美的自增ID,以满足两个基本的要求: 每秒能生成几十万条 ID 用于标识不同的 记录; 这些 ID 应该可以有个大致的顺序,也就是说发布时间相近的两条记录,它们的 ID也应当相近,这样才能方便各种客户端对记录 进行排序。 Twitter-Snowflake算法就是在这样的背景下产生的。 核心 Twitter 解决这两个问题的方案...

0
1
发表了博客
2019/10/25 13:12

分布式自增ID算法snowflake-Twitter

概述 分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。 有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。 而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移到Cassandra,因为Cassandra没有顺序ID生成机制,所以开发了这样一套全局唯一ID生成服务。 结构 snowflake的结...

0
0
发表了博客
2018/10/17 09:33

Twitter的雪花算法(snowflake)自增ID

前言   这个问题源自于,我想找一个分布式下的ID生成器。   这个最简单的方案是,数据库自增ID。为啥不用咧?有这么几点原因,一是,会依赖于数据库的具体实现,比如,mysql有自增,oracle没有,得用序列,mongo似乎也没有他自己有个什么ID,sqlserver貌似有自增等等,有些不稳定因素,因为ID生成是业务的核心基础。当然,还有就是性能,自增ID是连续的,它就依赖于数据库自身的锁,所以数据库就有瓶颈。当然了,多台数据库...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
5 评论
205 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部