自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 序列化与反序列化

序列化与反序列化

2022-10-18 12:00:03 117 1

原创 基于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关注的人

提示
确定要删除当前文章?
取消 删除