项目
文章平均质量分 96
duration~
将语言当做协议,聊天当做通信,将说话的内容当做数据。上下层之间进行交互时所遵循的约定叫做“接口”,通信双方同一层之间的交互所遵循的约定叫做“协议”。
展开
-
通用分布式锁组件
Redisson是一个基于Redis的工具包,功能非常强大。将JDK中很多常见的队列、锁、对象都基于Redis实现了对应的分布式版本。1)创建锁对象2)尝试获取锁3)处理业务4)释放锁但是,除了第3步以外,其它都是非业务代码,对业务的侵入较多:可以发现,非业务代码格式固定,每次获取锁总是在重复编码。我们可不可以对这部分代码进行抽取和简化呢?锁名称锁等待时间锁超时时间时间单位方法结束是否释放锁/*** 加锁key的表达式,支持SPEL表达式/**原创 2024-04-04 13:30:01 · 1056 阅读 · 3 评论 -
兑换码生成算法
自增id从1增加到Integer的最大值,可以达到40亿以上个数字,而占用的字节仅仅4个字节,也就是32个bit位,距离50个bit位的限制还有很大的剩余,符合要求!那因此,只要我们让数字转为二进制的形式,然后每5个二进制位为一组,转10进制的结果是不是刚好对应一个角标,就能找到一个对应的字符呢?所以,我们采用自增id的同时,还需要利用某种校验算法对id做加密验证,避免他人找出规律,猜测到其它兑换码,甚至伪造、篡改兑换码。依此类推,最终那一串二进制数得到的结果就是KCNBP2PC84,刚好符合我们的需求。原创 2024-04-01 18:10:56 · 1980 阅读 · 8 评论