在分布式环境下,主键的唯一性就很重要。目前有的几种策略有:
1.数据库的sequence机制
2.单独的一台主键服务器
3.自定义的主键生成机制
数据库的sequence机制:
能保证全局唯一,但是会对数据库的产生压力,尤其是在高并发的情况下,数据库的压力会很大,在项目中不使用
单独的一台主键服务器:
部署复杂,且网络之间有消耗,且该服务器异常后,会对整个系统产生影响,必须考虑单点故障
自定义主键生产机制:
目前项目中使用该策略生成主键。主要思想就是对每个服务器进行单独标识,在生产主键时,在每个服务器自身生成ID,在ID中加入该服务器的标识,这样,将分布式系统的压力分散到其中的每台服务器上。这种方法的缺点是:如果大规模的环境下,对每个服务器的标识比较麻烦,且如果需要产生流水号的ID,这种方法就不能支持.但目前项目中并未有该种要求,满足需求.