php_snowflake 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
php_snowflake 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
php_snowflake 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
php_snowflake 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
php_snowflake 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT
开发语言 PHP
操作系统 Linux
软件类型 开源软件
开发厂商
地区 国产
提 交 者 盛夏等待勿忘
适用人群 未知
收录时间 2016-08-19

软件简介

推特分布式id生成算法,在多线程环境最小颗粒度能到线程。

要求:PHP >= 5.6

描述:

NTS

0 2          15        20   28      32
---+----------------+--------------+----+----------+
00 |timestamp(ms)  | service_no   |pid | sequence |
---+----------------+--------------+----+----------+

TS

0 2          15        20   28      32
---+----------------+--------------+----+----------+
00 |timestamp(ms)  | service_no   |tid | sequence |
---+----------------+--------------+----+----------+

安装:

phpize
./configure --with-php-config=/you/phppath/php-config
make
make install

示例:

$service_no = 999;
for ($i=0; $i < 10; $i++) { 
        echo PhpSnowFlake::nextId($service_no)."\n";
}
/*

00146523488416500999000634280001
00146523488416500999000634280002
00146523488416500999000634280003
00146523488416500999000634280004
00146523488416500999000634280005
00146523488416600999000634280001
00146523488416600999000634280002
00146523488416600999000634280003
00146523488416600999000634280004
00146523488416600999000634280005

*/
展开阅读全文

代码

评论 (0)

加载中
更多评论
暂无内容
发表于软件架构专区
2018/03/02 15:36

snowflake

https://github.com/hikdo/snowflake twitter snowflake算法php扩展 其他的开源实现,并不能处理好进程间并发。

0
0
发表于软件架构专区
2019/02/25 19:40

SnowFlake算法

SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图: 1位,不用。二进制中最高位为1的都是负数,但是我们生成的id一般都使用整数,所以这个最高位固定是0 41位,用来记录时间戳(毫秒)。 41位可以...

0
0
发表了博客
2018/02/24 16:28

snowflake算法

snowflake算法思考 缘起 为什么会突然谈到分布式唯一id呢?原因是最近在准备使用RocketMQ,看看官网介绍: 一句话,消息可能会重复,所以消费端需要做幂等。为什么消息会重复后续RocketMQ章节进行详细介绍,本节重点不在这里。 为了达到业务的幂等,必须要有这样一个id存在,需要满足下面几个条件: 同一业务场景要全局唯...

0
0
发表了博客
2019/04/11 13:42

雪花算法Snowflake

package com.freshconnect.scmall.front.web.supply.services; import java.text.SimpleDateFormat; import java.util.Date; import java.util.concurrent.atomic.AtomicLong; /** * java edition of T......

0
0
2019/01/02 14:42

雪花算法-snowflake

snowflake 算法 snowflake 算法是 twitter 开源的分布式 id 生成算法,就是把一个 64 位的 long 型的 id,1 个bit是不用的,用其中的 41 bit 作为毫秒数,用 10 bit 作为工作机器 id,12 bit 作为序列号。 1 bit:...

0
0
发表于软件架构专区
2020/01/15 09:18

snowflake分布式唯一id

分布式唯一id:snowflake算法思考-匠心零度 时间回拨问题

0
0
发表了博客
2019/10/11 10:07

Snowflake算法 - 原生

雪花算法是由Twitter公布的分布式主键生成算法,它能够保证不同进程主键的不重复性,以及相同进程主键的有序性。 在同一个进程中,它首先是通过时间位保证不重复,如果时间相同则是通过序列位保证。 同时由于时间...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2019/09/23 16:24

美团技术分享:深度解密美团的分布式ID生成算法

本文来自美团技术团队“照东”的分享,原题《Leaf——美团点评分布式ID生成系统》,收录时有勘误、修订并重新排版,感谢原作者的分享。 1、引言 鉴于IM系统中聊天消息ID生成算法和生成策略的重要性(因为某种意义上来说:聊天消息ID的优劣决定了IM应用层某些功能实现的难易度),所以即时通讯网近期正在着重整理有关IM中...

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