- 博客(2)
- 收藏
- 关注
原创 超发与超领问题
但是为了防止真的有其它线程修改数据,导致出现问题:利用CAS线程在每次修改之前先对原数据进行校验。总是认为数据会被其它线程做修改操作,为了避免其它线程的改数据影响自己,对数据加排它性、独占性锁。原因:整个流程里存储一系列的校验,校验通过之后才能领券,涉及了多次校验与数据库操作,这些操作不是原子性。认为其它线程很少会修改我的数据,所以我不需要加排它性的、独占性的锁,因为会影响性能。实现:对数据增加版本号,每次修改之前,先对比版本号,如果版本号不同,就说明被修改了。如果数据被其它线程修改了,就放弃操作。
2024-09-20 14:50:29
316
1
原创 兑换码算法
校验JWT令牌:A.B.C,我们取A+B+密钥,根据签名算法生成签名,拿这个签名和C部分对比。自增整数id:32bit,可以有21亿个正整数可用,能够满足我们的数据量大的要求,占用的空间也OK。后32bit自增id值,以4bit一组转换成十进制,与密钥做加权求和,结果作为签名。取后36bit,异或同一个大数字,然后取后32bit是自增值,高4bit是新鲜码。再根据自增id值的32bit,和找到的密钥做加权求和,得到签名。JWT的签名算法:A.B.C,其中A和B是承载的一些数据,C是用于校验的签名。
2024-09-20 14:49:19
542
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人