- 博客(5)
- 收藏
- 关注
原创 基于zk的分布式排他锁
1、实现原理:1)定义一个根节点作为加锁节点,如果该根节点已经存在,当前会话将在根节点下方创建顺序临时节点(若会话非正常关闭,临时节点也将被删除),线程进入wait()等待状态;2)每次选择加锁节点,都需要进行排序,选择序号最小的节点进行加锁;3)如果不是最小节点就监听前一个节点是否存在,进入wait;4)若加锁节点不存在了,则将所有的线程都notifyAll,所有机器上的线程再次进行争夺锁,直到有一个线程加锁成功,其它线程进入wait;2、代码流程(借鉴于:ZooKeeper分布式
2022-03-20 13:41:49
989
原创 领域驱动(自己理解)
代码层级编写规范1、什么是领域驱动?核心是维护一个反应领域概念的模型,然后通过大量模式来指导模型设计与开发。一般过程:通过产品同学所写出的prd,利用领域模型的概念与业务相结合,完善出xmind,现在包括五层:adapter、domain、app、client、infrastructure,其中最重要的就是我们的domain层,下面我们会一层一层的进行描述与每个层级编写的规范;2、为什么要使用领域驱动(好处)?1)方便代码的理解、减少新同学接触这方面业务的时间领域驱动是根据业务延伸出
2022-03-12 16:29:03
4617
原创 自定义sql拦截器与pageHelper兼容
1、功能描述:项目后期需要添加新的字段,mybatis用的是tk、pius、原生,修改起来及其麻烦而且浪费时间,所以需要一个拦截器将sql语句进行升级,加字段,但是在项目之中又使用了pageHelper分页,本派文章将对兼容进行讲解并且讲解下拦截器的逻辑;2、mybatis拦截器的使用方式:1)注解类(这次的主要讲解,主要是在调用拦截器的时候才会扫描,属于懒加载):@Intercepts标记该方法是一个拦截器,在我们调用InterceptorChain中的pluginAll方法时,加载的拦截
2022-02-26 18:05:56
1865
原创 curator框架分布式锁解析
1、InterProcessMutex分析:可重入的互斥锁,跨JVM工作。使用ZooKeeper来控制锁。所有JVM中的任何进程,只要使用同样的锁路径,将会成为跨进程的一部分。此外,这个排他锁是“公平的”,每个用户按照申请的顺序得到排他锁。可见InterProcessMutex和我们自己实现的例子都是一个排他锁,此外还可以重入。代码: public class Curator_Session { static AtomicInteger n = new AtomicIn...
2022-02-12 16:16:40
1223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人