雪花算法ID冲突问题与解决方案
分布式部署应用项目采用雪花算法生成ID有冲突问题:
方案一:给应用分配随机
datacenter-id和
worker-id
如下图:
global-config: db-config: logic-delete-field: del_flag logic-delete-value: 1 # 逻辑已删除值(默认为 1) logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) datacenter-id: ${random.int(2,31)} worker-id: ${random.int(3,31)}
说明:随机区间只能是1到31之间,这里数据中心id从2开始,因为其他项目用1,机器id也是同理
但是随机不能保证永远不冲突
方案二:给启动项目分配不同的参数
我们可以在启动脚本直接指定机器id,这样多服务部署可以解决重复问题。