遇到一个不大不小的问题,虽然目前这个方法能解决一般场景。
但总觉得有更巧妙的解法。
背景:
需要保证服务实例编号唯一,
如果是实例编号重复,则有风险产生重复的编号
目前解决办法:
实例初始化时,按序执行以下步骤
1.无脑 setNX(key,0,永不过期),确保实例能取到值
2.val := incrby(key,1)
3.对 val 取余 1000,设为实例编号
存在问题:
1.如果在一台实例挂了 1000 次,则会和其他实例编号重复
但总觉得有更巧妙的解法。
背景:
需要保证服务实例编号唯一,
如果是实例编号重复,则有风险产生重复的编号
目前解决办法:
实例初始化时,按序执行以下步骤
1.无脑 setNX(key,0,永不过期),确保实例能取到值
2.val := incrby(key,1)
3.对 val 取余 1000,设为实例编号
存在问题:
1.如果在一台实例挂了 1000 次,则会和其他实例编号重复