- 博客(6)
- 收藏
- 关注
原创 雪花算法生成有序唯一id
雪花算法生成有序唯一id一般的雪花算法规定如下,前41位为时间戳,中间10位为服务唯一标识,后10位为序列号时间戳 服务唯一标识 序列号00000000000000000000000000000000000000000 0000000000 000000000000
2020-08-12 16:32:33
2084
原创 Zookeeper 分布式锁
假设有如下场景,在一个分布式环境,由A, B, C,服务3个服务组成,服务有一个编辑修改,A B个服务同时打开表单,修改某一条数据。那此刻A B 三个服务看到的都是一样的没有修改的数据,如果A先提交,那么B由于不知道A已经修改过数据,B认为数据没有修改也提交,导致A的数据被覆盖。可以知道要想A改的数据能被B知道,那么打开表单和保存修改是同一个原子,在A打开表单的时候获取锁,锁住查询接口,禁止其...
2019-06-24 11:38:38
159
原创 Mybatis 插件(拦截器)原理讲解
Mybatis 插件(拦截器)原理讲解在mybatis的配置文件中可以看到有个 标签,既可以叫插件也可以叫拦截器.顾名思义,就是可以对一些类的方法进行拦截,那么可以拦截那些类呢,主要可以看下Configuration 这个类中的这几个方法newParameterHandler,newResultSetHandler,newStatementHandler,ne...
2019-06-11 19:13:00
571
原创 代理模式和装饰器模式讲解
平常使用的设计模式中,经常可以遇见代理模式,而装饰器模式比较少见,但这两种模式还是有很多相同之处。有以下两种情况当代码中需要使用某些对象,但代码中不合适或者不能直接使用使用这些对象,例如mybatis 中可以兼容很多日志,拿其中的log4j2 来说,mybatis肯定不好直接使用log4j2的输出日志对象去输出日志,那样框架就直接依赖log4j2,那么在框架中就是使用了自己的代理类Log4j2A...
2019-06-11 10:47:31
130
原创 Zookeeper CuratorFramework 框架的使用
CuratorFramework 是Netflix公司开发一款连接zookeeper服务的框架,提供了比较全面的功能,除了基础的节点的操作,节点的监听,还有集群的连接以及重试。首先是创建一个连接RetryPolicy policy = new ExponentialBackoffRetry(1000, 10); //通过工厂创建Curator CuratorFramework ...
2019-06-06 17:22:18
13052
原创 zookeeper 服务搭建
Zookeeper windows环境部署单机环境部署准备zookeeper 的zip 包解压到某个文件夹下, G:\beijing project\tool\zookeeper\单机环境,在解压完成的文件夹中新建 一个data文件夹,用于存放zookeeper 的数据区域。打开文件的config 文件夹,在文件夹下有一个zoo_sample.cfg 文件,在这个文件夹复制一份,重命名为zoo...
2019-06-06 17:19:25
236
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人