单机服务,主键ID为长整型,需要做到不能连续的,比如自增就不能实现因为是连续的。
我想到了用System.nanoTime()做ID,因为没有实践过,不知道会不会出现ID重复?
问题是: 1 这样可以实现吗?
2 如果有更好的办法,那是什么了?
单机服务,主键ID为长整型,需要做到不能连续的,比如自增就不能实现因为是连续的。
我想到了用System.nanoTime()做ID,因为没有实践过,不知道会不会出现ID重复?
问题是: 1 这样可以实现吗?
2 如果有更好的办法,那是什么了?
墨菲定律只要有可能出错,就一定会出错,不管它的概率有多小。
不能连续出现,单机服务。举个例子,假如你使用 自增ID
在加 System.nanoTime()
组成一个 long
类型数字(是字符串形式连接,而不是加法)。这个ID就不会重复了,因为 自增ID
一定不会重复。
15 回答8.4k 阅读
8 回答6.2k 阅读
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
2 回答2.8k 阅读✓ 已解决
不行。nanoTime使用的是一个不确定的起始时间,在重启动以后很可能会有重叠。
可使用UUID。