个人学习总结
文章平均质量分 60
dembo
这个作者很懒,什么都没留下…
展开
-
通过AOP实现加解密和验签
目标:通过注解参数的修改,在不改动AOP的情况下,适配不同的加解密和验签需求,在AOP中对加密密文解密后传递到接口。在使用过程中,具体实现加解密的方法必须实现定义的接口,需要加密的某个参数实体类需要继承定义的基本实体类。SpringUtil工具类import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.BeansException;import org.springfra原创 2021-08-11 12:32:52 · 1544 阅读 · 2 评论 -
消息中间件如何实现幂等性
消息中间件的幂等性,一般有两种实现方式,基于业务实现幂等性和不基于业务实现幂等性。如果业务场景比较简单,可以基于业务实现。比如:消费端处理购买商品的订单,订单表新增数据,并把库存表中该商品的库存减少。消费端处理开通会员的订单,订单表新增一条记录,并把该用户的会员时间新增一个月。这种比较简单的业务场景,可以考虑基于业务实现。该场景下肯定要确保订单的插入和库存减少在一个事务中,否则消费到一半,订单增加了,库存没有减少,重新消费的时候就会出错。那么如果当订单插入成功,并且库存也...原创 2021-08-10 10:39:54 · 969 阅读 · 0 评论 -
常见的三种实现分布式锁的方法
为了保证在高并发下,一个方法或者属性同一时间只能被同一个线程执行,单机部署下可以用ReentrantLock或者Synchronized进行互斥控制。分布式集群系统中就需要用分布式锁来解决。一般来说实现分布式锁有三种方式。一、基于数据库实现排他锁建一张表,设置方法名称字段唯一,在获取锁的时候可以通过两种方法:1、直接insert,如果失败则已经存在锁了,获取锁失败,如果insert成功则获取锁成功,释放锁直接delete。2、update,再加一个字段,锁的状态,先查寻,然后update,如原创 2021-08-07 17:38:55 · 967 阅读 · 0 评论