当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

idCreator

ID生成器
授权协议 BSD
开发语言 C/C++
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 白越
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

idCreator是我们设计并且开发一个分布式的id生成器。它主要为业务系统提供唯一、索引友好、 可排序的id。它解决了互联网行业中,使用int自增id或者是string类型的自定义id而导致的 无法方便的分库分表或者是id排序不友好问题。提到id生成器,twitter的snowflake算法 不得不被提起,但是snowflake的算法因为使用了二进制的移位做法,导致其生成的算法过 度的对于机器友好,对于人类并不是那么的友好,也就是说snowflake生成的id对于人类来 说并不能“望文生义”。

我们目前的idCreator主要提供3种规则的id:
1. 如果你喜欢snowflake算法,你一样可以选择我们的idCreator,它也有算法支持;
2. 如果你需要做数据路由,也就是分库分表操作,我们的idCreator就是生成这种带有 路由信息性质的id的,你更应该选择它;
3. 如果你仅仅自是想做排序id,那么我们的idCreator为你提供了每秒递增的id;
再不久的将来,目前已经加入了我们的计划。我们将再提供一种id:
4. 按照时间和自定义步长严格递增的id,主要用来作为状态值等使用。也可以用来做强类型 的数据路由。

 相关资料
  • 圣灵所结的果子,就是仁爱、喜乐、和平、忍耐、恩慈、良善、信实、温柔、节制。这样的事,没有律法禁止。凡属基督耶稣的人,是已经把肉体连肉体的邪情私欲同钉在十字架上了。我们若是靠圣灵得生,就当靠圣灵行事。不要贪图虚名,彼此惹气,互相嫉妒。(GALATIANS 5:22-26) 生成器 上节中,我们曾经做过这样的操作: >>> my_tup = (x**x for x in range(4))>>> my

  • 1、为什么需要生成器 通过上面的学习,可以知道列表生成式,我们可以直接创建一个列表。 但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含 1000 万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢? 这样就不必创建完整的 li

  • 当你需要懒惰地生成一系列的值时,考虑使用一个“生成器函数” (generator function)。Dart 对这类生成器函数有内置的支持: 同步的生成器:返回一个 Iterable 对象。 异步的生成器:返回一个 Stream 对象。 要实现一个同步的生成器函数,使用 sync* 标记函数体,并使用 yield 语句传递值: Iterable<int> naturalsTo(int n) sy

  • 如果读过前一节,那你应该已经知道“迭代器”指的是一种可以被“for”循环使用的对象。换句话说,迭代器就是遵循迭代协议的对象。 而生成器则是迭代器的一种更为简洁的实现方法。这种写法不再需要构造一个类,而只需编写一个函数,函数每次运行到“yield”语句时都会返回一个值。下面的例子是用生成器来依次生成两个数之间的整数: def myrange(a, b): while a < b:

  • 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循

  • 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循

  • 我正在尝试使用ANTLRV4为一个简单的自定义语法生成一个lexer和解析器。问题是,当我运行Antlr.jar实用程序时,它生成了一个Lexer文件,而不是一个解析器文件,我认为它应该生成。 简单语法 hellolexer.js hellolexer.tokens 所需输出 hellolexer.js helloparser.js hellolistener.js hellovisitor.js

  • Milo Yip 2017/1/5 本文是《从零开始的 JSON 库教程》的第七个单元解答篇。解答代码位于 json-tutorial/tutorial07_answer。 1. 生成字符串 我们需要对一些字符进行转义,最简单的实现如下: static void lept_stringify_string(lept_context* c, const char* s, size_t len) {