微服务集群环境,雪花算法出现重复ID
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '854658443787632640' for key 'PRIMARY' # 指定 工作机器数量 最大是2的10次方 , 即小于 1024 就可以 spring.shardingsphere.sharding.tables.shard.key-generator.props.worker.id=1000 max-vibration-offset # 最大容忍的时钟回拨毫秒数, 雪花算法依据时间戳来生成的,一旦时间戳回拨就会造成 id 重复的可能 spring.shardingsphere.sharding.tables.shard.key-generator.max.tolerate.time.difference.milliseconds=5
方案一、配置实现
随机指定 worker.id,这样在kubernetes集群环境,每次启动pod,worker.id 都会自动变化。
spring.shardingsphere.sharding.tables.test.key-generator.props.worker.id=${random.int[1,1024]}
查看当前 worker.id
package cn.netkiller.controller.test;//package cn.netkiller.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import