2016 - 2024

感恩一路有你

java生成流水号唯一 通常生成唯一流水号的方法是什么?

浏览量:1165 时间:2021-03-30 09:06:33 作者:admin

通常生成唯一流水号的方法是什么?

如果只要求不重复,则使用UUID方法,time machine应用程序ID。没有并发问题,可以直接在客户端生成。如果需要特殊规则,例如1增量。您需要一个独立的应用程序服务来生成。有以下几种方法:1。使用数据库自动添加字段。甲骨文,MySQL都有。前端用web应用程序封装。2编写自己的代码很容易。可以使用javaatom变量。但考虑持久性和备份。三。Zookeeper节点ID,但效率相对较低

1。如果主题不要求ID是数字,建议使用最简单的,即UUID,它包括机器码、时间戳、随机数等,但是UUID最终生成一个全局唯一的字符串,而不是整数,看起来很混乱。

2. MySQL自己添加ID。它使用一个表来存储各种业务id。每个分布式系统插入一个ID后,生成1000万个本地号码与ID拼接,然后每个系统得到一个ID,相当于生成1000万个ID,足够长时间使用。这1000万个ID可以预先定义,并在系统启动时放入内存。因为它们只是ID,所以不会占用太多内存。MySQL可以内置到集群中,这不会影响自增IDs的使用。

3. 与MySQL的auto-increment ID类似,redis的incr实现了自动增量。每个分布式系统,比如redis,都是用incr插入一个ID,然后生成1000万个本地号码与ID拼接,如果每个系统都有一个ID,相当于生成1000万个ID,足够长时间使用。这1000万个ID可以预先定义,并在系统启动时放入内存。因为它只是一个ID,所以不会占用太多内存。Redis也可以内置到集群中,这不会影响自增ID的使用。Twitter的雪花算法与UUID类似,包括机器码、时间戳、随机数等,但最终生成的是64位整数,可以满足许多分布式系统的要求。如果Id必须是整数,建议使用snowflake而不是UUID。

java生成流水号唯一 java订单号生成算法 java流水号生成器

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。