JS的数字类型目前支持的最大值为:9007199254740992,一旦数字超过这个值,JS将会丢失精度,导致前后端的值出现不一致。
JAVA的Long类型的 最大值为:9223372036854775807,snowflake的算法在实现上确实没问题的,但实际运用的时候一定要避免这个潜在的深坑。
有个博友遇到这个问题的解决方案:
https://www.cnblogs.com/do-your-best/p/9443342.html
如果是在项目一开始的时候就发觉到了这个问题,我建议还是把这个id设置为String类型(数据库id是long还是string的那一点性能差距其实真可以忽略)。