java生成二维码带有logo 适用于分布式唯一标识码的生成算法有哪些?

[更新]
·
·
分类:互联网
1311 阅读

java生成二维码带有logo

适用于分布式唯一标识码的生成算法有哪些?

适用于分布式唯一标识码的生成算法有哪些?

现在分布式大行其道,由于数据库分布在不同的服务器上,如果用传统的自增等方式生成ID,不同的数据库上的ID难以保证不重复,而有业务影响风险!
可以说唯一标识码是分布式数据库所要面临的第一道关!
我接触分布式多年,对于唯一标识码的生成遇见过这么几种方式!
1,UUID:算法有很多种,使用同一台机器上的时间生成字节来区分同一台机器上的不同ID,使用IEEE机器识别号或者IP地址等来区分不同机器上的ID,这样不同的机器间和同一个机器都进行了区分,保证生成的UUID是全局唯一的!
JAVA有自带的UUID.randomUUID()算法来实现!
局限性:生成的ID没有顺序性!
2,snowflake:twitter自己开发的唯一ID算法,使用41位时间序列,10位机器号的标志,12位的顺序的计数,每毫秒可以生成4096个唯一序列号!
3,基于redis的原子函数incr或者incrby方法:因为redis是单线程的工作模式,利用自增方法可以得到全局唯一的ID,不过如果是没有引入redis组件的,可能需要额外的成本!
4,mongodb的objectid:因为mongodb一开始就是为了分布式而生,所以生成objectID算法也保证全局唯一性!生成的objectID也是由时间戳+机器唯一标志+进程ID+计数器!每秒钟可以生成2563个不一样的objectID!
以上是我用过的唯一ID生成算法,有问题随时找我交流!更多的技术分享,敬请关注。。

sql定义第一个中文字符出现的位置?

如果是java程序的话,找到中文,可以找一些识别中文的函数,然后再遍历,设置一个标志位就可以了.