tinyid

分布式id生成系统
授权协议 Apache
开发语言 Java
所属分类 服务器软件、 分布式应用/网格
软件类型 开源软件
地区 国产
投 递 者 葛烨
操作系统 跨平台
开源组织 滴滴出行
适用人群 未知
 软件概览

tinyid 是滴滴开发的 id 生成器 分布式id生成系统,简单易用、高性能、高可用的id生成系统。

提供的 REST API:

nextId:
curl 'http://localhost:9999/tinyid/id/nextId?bizType=test&token=0f673adf80504e2eaa552f5d791b644c'response:{"data":[2],"code":200,"message":""}

nextId Simple:
curl 'http://localhost:9999/tinyid/id/nextIdSimple?bizType=test&token=0f673adf80504e2eaa552f5d791b644c'response: 3

with batchSize:
curl 'http://localhost:9999/tinyid/id/nextIdSimple?bizType=test&token=0f673adf80504e2eaa552f5d791b644c&batchSize=10'response: 4,5,6,7,8,9,10,11,12,13

Get nextId like 1,3,5,7,9...bizType=test_odd : delta is 2 and remainder is 1
curl 'http://localhost:9999/tinyid/id/nextIdSimple?bizType=test_odd&batchSize=10&token=0f673adf80504e2eaa552f5d791b644c'response: 3,5,7,9,11,13,15,17,19,21
  • 1、客户端 1.1.实例化client对象 核心类及代码如下: 1.1.1.TinyId private static IdGeneratorFactoryClient client = IdGeneratorFactoryClient.getInstance(null); 1.1.2.IdGeneratorFactoryClient public class IdGeneratorFactor

  • 转载请明显注明出处,尊重南波兔的付出 先来看client public static List<Long> nextId(String bizType, Integer batchSize) { if(batchSize == null) { Long id = nextId(bizType); List<Long> list = n

  • 开卷必有益,但凡看github上的开源项目,必有所获, 之前我一直想看那种大型高端项目的源码,但是一方面原理复杂,跟踪困难,另一方面也是自身水平达不到,就如那品茶,没有那个底蕴,再怎么品那也是牛嚼牡丹,暴殄天物. 于是我就决定从一个功能较单一的小项目开始着手. 因为现在我们公司的id生成器是利用雪花算法保证的 所以我就想研究一下id生成器相关的项目 找来找去,就找到了tinyid. 果然受益匪浅!

  • 软件简介 tinyid 是滴滴开发的 id 生成器 分布式id生成系统,简单易用、高性能、高可用的id生成系统。 提供的 REST API: nextId: curl 'http://localhost:9999/tinyid/id/nextId?bizType=test&token=0f673adf80504e2eaa552f5d791b644c'response:{"data":[2],"co

  • https://github.com/JOHNKING123/tinyid/tree/V1.0.0-with-zk 针对tiny id  无法生成 递增id. 只能是趋向性id(无法保证前面生成的id 一定小于 后面生成的id) 的问题,进行改造。 用zk 的方式,选出一个master . 其他为slave.  所有发给slave 的, 都转向 master. 如果master 挂了。则slave

 相关资料
  • 主要内容:1.UUID,2.数据库自增Id,3.基于数据库集群模式,4.基于数据库的号段模式,5.Redis,6.Snowflake,7.百度(uid-generator),8.Leaf,9.TinyId生成方式: 1.UUID 2.数据库自增ID 3.数据库多主模式 4.号段模式 5.Redis 6.雪花算法(SnowFlake) 7.滴滴出品(TinyID) 8.百度 (Uidgenerator) 9.美团(Leaf) 1.UUID UUID的生成简单到只有一行代码,输出结果 c2b8c2b

  • 有时我们需要能够生成类似MySQL自增ID这样不断增大,同时又不会重复的id。以支持业务中的高并发场景。比较典型的,电商促销时,短时间内会有大量的订单涌入到系统,比如每秒10w+。明星出轨时,会有大量热情的粉丝发微博以表心意,同样会在短时间内产生大量的消息。 在插入数据库之前,我们需要给这些消息、订单先打上一个ID,然后再插入到我们的数据库。对这个id的要求是希望其中能带有一些时间信息,这样即使我

  • 如何自定义生成固定长度的字符串ID,8-12个字符 格式:业务标记_xxxxxxxxxx 如:user_Nuxq23s24dxa1ScSx 要求:1ms生成100W个 或有什么现成的库可以使用,麻烦老大们贴下代码

  • 主要内容:(1)方案一:独立数据库自增id,(2)方案二:uuid,(3)方案三:获取系统当前时间,(4)方案四:snowflake算法的思想分析,(5)snowflake算法的代码实现,(6)snowflake算法一个小小的改进思路上一篇文章,我们聊了一下分库分表相关的一些基础知识,具体可以参见:《用真实业务场景告诉你,高并发下如何设计数据库架构?》。 这篇文章,我们就接着分库分表的知识,来具体聊一下全局唯一id如何生成。 在分库分表之后你必然要面对的一个问题,就是id咋生成? 因为要是一个表

  • 主要内容:一、从一个新闻门户网站案例引入,二、推算一下你需要分析多少条数据?,三、黄金搭档:分布式存储+分布式计算这篇文章聊一个话题:什么是分布式计算系统? 一、从一个新闻门户网站案例引入 现在很多同学经常会看到一些名词,比如分布式服务框架,分布式系统,分布式存储系统,分布式消息系统。 但是有些经验尚浅的同学,可能都很容易被这些名词给搞晕。所以这篇文章就对“分布式计算系统”这个概念做一个科普类的分析。 如果你要理解啥是分布式计算,就必须先得理解啥是分布式存储,现在我们从一个小例子来引入。 比如说

  • 被别人指出问题时,别管别人能不能做到,看别人说的对不对,然后完善自己。别人能不能做到是别人的事情,自己能不能做到关系到自己能否发展的更好。——hustlihaifeng Go语言号称是互联网时代的C语言。现在的互联网系统已经不是以前的一个主机搞定一切的时代,互联网时代的后台服务由大量的分布式系统构成,任何单一后台服务器节点的故障并不会导致整个系统的停机。同时以阿里云、腾讯云为代表的云厂商崛起标志着