摘要: 当有多个事务同时更新一条sql时,mysql是如何处理的呢?很显然,使用加锁的方式,一个事务获得了锁,进行操作,其他事务排队一个个等着,等当前这个事务执行完释放锁,其他事务获取锁取到锁的进行操作。这里的锁就是独占锁,也就是X锁。 那么如果有查询这一行数据时,是要加锁吗?不是的,mysql为了提高性能 阅读全文
posted @ 2020-05-17 23:28 东篱闲菊 阅读(1144) 评论(0) 推荐(1) 编辑
摘要: 一、定义 责任链模式:将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。 二、实现 1.首先定义一个处理器的接口 /** * 处理器接口 * @author yannic */ public inte 阅读全文
posted @ 2020-05-17 23:03 东篱闲菊 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 一、前言 我们提交一个事务,里面有多条sql,mysql是如何管理事务的呢?是如何做到其中一条sql执行失败,全部回滚的呢? 二、XA事务 XA协议是基于二阶段提交的一个具体实现,也是分为Prepare和Commit两个阶段。 Prepare阶段:TM(事务协调者)向所有RM(资源管理者)发送pre 阅读全文
posted @ 2020-05-16 18:02 东篱闲菊 阅读(1289) 评论(0) 推荐(0) 编辑
摘要: 一、undo log版本链 我们在执行update,insert,delete的时候会生成undo log日志,以防止回滚使用。 一条sql执行,会生成一条undo log日志: 其中trx_id就是执行这条sql的事务id,roll_pointer指向对同一个值修改的undo log日志,因为当前 阅读全文
posted @ 2020-04-20 00:16 东篱闲菊 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 一、三次握手 三次握手建立tcp连接: 1.客户端发送syn报文给服务端 2.服务端收到客户端端syn报文,返回syn+ack应答报文,告诉客户端可以建立连接了 3.客户端收到服务端的应答报文后,发送一个ack报文,告诉服务端我收到服务端的响应报文了,并且进入established状态 第3步看起来 阅读全文
posted @ 2020-03-18 00:06 东篱闲菊 阅读(626) 评论(0) 推荐(0) 编辑
摘要: 在阿里巴巴java开发规范中关于集合删除有一项: 11.【强制】不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁。 正例: List<String> list = new Arra 阅读全文
posted @ 2020-03-16 23:31 东篱闲菊 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 一、使用场景 Guava Cache是本地缓存,当数据被重复查询多次,愿意耗费一些内存空间来减少查询的操作提高查询的速度,就可以使用Guava Cache。 二、使用方式 1.创建 LoadingCache是附带CacheLoader构建而成的缓存实现。创建自己的CacheLoader通常只需要简单 阅读全文
posted @ 2020-03-08 19:06 东篱闲菊 阅读(731) 评论(0) 推荐(0) 编辑
摘要: 一、批量消息 虽然我们是一笔一笔消息的发送给kafka,但是kafka并不是立即就发送出去的,而是先将消息缓存起来,再一批一起等个合适的时机一起发送出去。 消费端收到消息不是一个个拆出来一个个处理,而是直接作为一批一起处理,一起读写磁盘io,一起复制,这都大大加快了io的速度。 二、顺序读写 磁盘i 阅读全文
posted @ 2020-03-08 01:07 东篱闲菊 阅读(786) 评论(0) 推荐(0) 编辑
摘要: 一、定义 通过共享支持大量细粒度的对象。 二、使用场景 程序中有大量相似对象,并且占大量内存,这种场景下,我们通过共享内存来减少创建重复的对象,从而节约内存资源。 三、应用实例 1.缓存池:字符串常量 2.棋子游戏,文字编辑 四、模式结构 UML图: Flyweight:抽象享元类。 Concret 阅读全文
posted @ 2020-03-08 00:37 东篱闲菊 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 一、问题 传统的Linux io操作,直接与io交互的话,首先得寻址,这个寻址是个很耗时的过程。为了减少与磁盘的io,加了一个page cache层,也就是os cache。如果page cache有的话就不需要到磁盘里找了,直接返回,这个速度就很快了。如果没有再到磁盘里查询,进行读写。那么一次io 阅读全文
posted @ 2020-03-07 20:03 东篱闲菊 阅读(226) 评论(0) 推荐(0) 编辑