摘要: 提到事务,你肯定会想到ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性),我们就来说说其中I,也就是“隔离性”。 当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non repea 阅读全文
posted @ 2019-07-19 23:56 luozhiyun 阅读(4443) 评论(2) 推荐(7) 编辑
摘要: 然后我们需要为这个表插入10000行记录 访问方法 使用全表扫描进行查询 是所有索引进行查询 const 设计MySQL的大叔认为通过主键或者唯一二级索引列与常数的等值比较来定位一条记录是像坐火箭一样快的,所以他们把这种通过主键或者唯一二级索引列来定位一条记录的访问方法定义为:const,意思是常数 阅读全文
posted @ 2019-07-05 15:56 luozhiyun 阅读(325) 评论(0) 推荐(0) 编辑
摘要: dubbo的负载均衡全部由AbstractLoadBalance的子类来实现 RandomLoadBalance 随机 在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。 1. 获取invoker的数量 2. 获取第一个invoker的权重, 阅读全文
posted @ 2019-06-02 15:39 luozhiyun 阅读(7515) 评论(0) 推荐(0) 编辑
摘要: ExecuteLimitFilter ExecuteLimitFilter ,在服务提供者,通过 的 "executes" 统一配置项开启: 表示每服务的每方法最大可并行执行请求数。 ExecuteLimitFilter是通过信号量来实现的对服务端的并发数的控制。 ExecuteLimitFilte 阅读全文
posted @ 2019-06-01 18:54 luozhiyun 阅读(9064) 评论(0) 推荐(0) 编辑
摘要: 分布式锁 1. setnx(set if not exists) 如果设值成功则证明上锁成功,然后再调用del指令释放。 但是有个问题,如果逻辑执行到中间出现异常了,可能会导致 del 指令没有被调用,这样就会陷入死锁,锁永远得不到释放。 2. setnx(set if not exists) 加上 阅读全文
posted @ 2019-05-17 13:04 luozhiyun 阅读(1265) 评论(0) 推荐(0) 编辑
摘要: 1. 强势技能学习 1. 这门技术在很长一段时间内都有很多公司在使用 2. 了解一下相关的生态圈 2. 重视基础 不仅仅只是在会使用的层面,会用spring 但是也要知道aop和ioc等基本是怎么实现的 3. 节奏感 要按照一种比较平缓的步骤进行学习,保持一种稳健的步骤来工作学习生活。对于我来说就像 阅读全文
posted @ 2019-04-20 16:24 luozhiyun 阅读(407) 评论(0) 推荐(2) 编辑
摘要: CMS全称 ConcurrentMarkSweep,是一款并发的、使用标记 清除算法的垃圾回收器, 如果老年代使用CMS垃圾回收器,需要添加虚拟机参数 “XX:+UseConcMarkSweepGC” 缺点: 1. CMS收集器对CPU资源非常敏感,在并发阶段,它虽然不会导致用户线程停顿,但是由于占 阅读全文
posted @ 2019-04-13 00:23 luozhiyun 阅读(1778) 评论(0) 推荐(0) 编辑
摘要: 在分析代码之前,我们先抛出下面的问题: hashmap 扩容时每个 entry 需要再计算一次 hash 吗? 我们首先看看jdk7中的hashmap的resize实现 transfer()方法将原有Entry数组的元素拷贝到新的Entry数组里 从上面可以看出在jdk7中,在resize的时候首先 阅读全文
posted @ 2019-03-28 18:52 luozhiyun 阅读(2696) 评论(0) 推荐(0) 编辑
摘要: 新生代填满时,垃圾收集器会暂停所有的应用线程,回收新生代空间。这种操作被称为Minor GC。 老年代被填满时,垃圾收集器会暂停所有应用线程,对其进行回收,接着对堆空间进行整理。这个过程被称为Full GC。 最主流的四个垃圾收集器分别是:Serial收集器、Throughput(或者Paralle 阅读全文
posted @ 2019-03-27 23:37 luozhiyun 阅读(302) 评论(0) 推荐(0) 编辑
摘要: JIT(即时编译) 解释型代码:程序可移植,相同的代码在任何有适当解释器的机器上,都能运行,但是速度慢。 编译型代码:速度快,电视不同CPU平台的代码无法兼容。 java则是使用java的编译器先将其编译为class文件,也就是字节码;然后将字节码交由jvm(java虚拟机)解释执行。由于这个编译是 阅读全文
posted @ 2019-03-26 00:56 luozhiyun 阅读(547) 评论(0) 推荐(0) 编辑