啥是分布式ID
分布式ID也叫全局ID,我们都知道数据库中的每一行数据都有着唯一的ID,对于数据量小使用单库就能满足的情况下,通常使用数据库自增ID就行了。
现在是互联网爆炸时代,随着公司业务的发展会导致数据量越来越大,通常从技术的角度需要进行分库分表,这个时候就不能使用数据库自增主键了,ID重复问题,可能给系统带来严重的故障。所以需要一个单独的机制来生成唯一的ID,这个ID就被叫做分布式ID。
分布式ID生成需要满足的要求:
- 全局唯一性。
- 趋势递增。由于数据库的存储方式(多数数据库使用B-tree的数据结构来存储索引数据),使用递增ID保证写入性能。
- 单调递增。就是下一个ID大于上一个,避免重复。
- 信息安全。可以考虑无规则递增ID。
通常使用的分布式ID生成方案有以下:
一、UUID
能做到全球唯一,能生成一串唯一随机32位长度数据,它是无序的一串数据。UUID的生成用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。性能非常的高,无网络消耗。
UUID.randomUUID();
但是对于互联网公司来说,一般是不会用这种方式的。主要缺点:
- 无序ID,不