微服务集群环境,雪花算法出现重复ID,解决方案

微服务集群环境,雪花算法出现重复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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

netkiller-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值