我们正在尝试找到一种相对简单的算法来生成ID 7个符号,且具有以下要求:
*每个ID必须是唯一的
*有几台未连接的服务器。更多服务器即将推出。
*我们可以定义第一个操作之前每个服务器要使用的段
*每个生成器在第一次操作之前都会注册一台服务器
*可能有数千个发电机
*每个生成器可能会离线生成多个ID(例如最多100个),然后使其联机并与其服务器进行同步
*要使用的字母:以数字开头,如果几乎没用(最好是全局)-添加小写字母,如果几乎没用-添加大写字母。
生成器将是具有iOS和Android的智能手机,因此赞赏Swift和Dart中的示例。
一种解决方案如下
*前2个符号为服务器编码
*接下来的2个符号对服务器内的生成器进行编码
*生成器的后3个符号代码ID,因此
服务器1上的生成器1能够生成从0101000到0101999的数字。服务器1上的生成器2-从0102000到0102999。服务器2上的生成器1-从0201000到0201999。
问题在于我们不知道每个生成器将生成多少个ID,并且我们将“好”和“坏”生成器以及服务器的相同段都阻塞了。对于一个生成器,我们将需要在1000个ID之后使用字母,当我们有很多其他数字时,这是不希望的。
谢谢您的好主意!