-
var gitalkConfig = {"clientID":"26b8e6758f16d4524e69","clientSecret":"ecfd9e9a439bcb8a4c4fd21f4677fa102c68b352","re...
-
大致流程图概览
为什么需要第三级缓存:考虑到AOP代理的情况,否则就会有在放入二级缓存的时候同时要把代理类的生成
而二级缓存存在的必要就是为了性能,从三级缓存的工厂里创建出对象,再扔到二级缓存(这样就不用每次都要从工厂里拿)
第二级缓存考虑性能
第...
-
Nameserver 启动流程流程图此处不做过多赘述,NameServer主要是维护了消息服务端和客户端的信息但是这边提一个RocketMQ中比较优雅的写法(利用JVM的钩子函数)
1234567891011121314151617181920212...
-
Linux是如何进行I/O操作的首先先明确一点:Linux内核将所有的外部设备都看做一个文件来操作
其次是涉及到I/O的两种场景(对应文件描述符的路径 /proc/xxx)
对文件的读写操作会调用内核提供的系统命令,返回一个文件描述符(fd fi...
-
过期策略通常有以下三种:
定时过期:每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。
惰性过期:只有当访问...
-
MVCC以下针对的是InnoDB引擎
什么是可重复读在可重复读的事务隔离级别下,当我们开启一个事务时,其他事务后续的改动,当前事务查询到的数据还是事务刚刚启动时候内容。这个实际上就是MySQL的MVCC做的事情。
1234567891011-- 事务...
-
尝试获取令牌lua脚本解析1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606...
-
现象测试环境频繁FullGC,导致整个服务停止对外提供服务。同时使用arthas增强失败,无法attach服务
排查过程
调用方/测试反映接口超时,无法正常调用
监控发现服务频繁发生fullgc,同时通过jstat命令发现fullgc频率极高,年轻...
-
123456789101112131415<T> RFuture<T> tryLockInnerAsync(long waitTime, long leaseTime, TimeUnit unit, long threadId...
-
Broker是如何存储消息的
流程图
代码解释写入CommitLog1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950...