• MySQL动态扩容-【其他文章收录】

    var gitalkConfig = {"clientID":"26b8e6758f16d4524e69","clientSecret":"ecfd9e9a439bcb8a4c4fd21f4677fa102c68b352","re...
  • 三级缓存解决循环依赖

    大致流程图概览 为什么需要第三级缓存:考虑到AOP代理的情况,否则就会有在放入二级缓存的时候同时要把代理类的生成 而二级缓存存在的必要就是为了性能,从三级缓存的工厂里创建出对象,再扔到二级缓存(这样就不用每次都要从工厂里拿) 第二级缓存考虑性能 第...
  • RocketMQ流程

    Nameserver 启动流程流程图此处不做过多赘述,NameServer主要是维护了消息服务端和客户端的信息但是这边提一个RocketMQ中比较优雅的写法(利用JVM的钩子函数) 1234567891011121314151617181920212...
  • I/O相关

    Linux是如何进行I/O操作的首先先明确一点:Linux内核将所有的外部设备都看做一个文件来操作 其次是涉及到I/O的两种场景(对应文件描述符的路径 /proc/xxx) 对文件的读写操作会调用内核提供的系统命令,返回一个文件描述符(fd fi...
  • Redis过期策略与内存淘汰

    过期策略通常有以下三种: 定时过期:每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。 惰性过期:只有当访问...
  • MySQL-MVCC

    MVCC以下针对的是InnoDB引擎 什么是可重复读在可重复读的事务隔离级别下,当我们开启一个事务时,其他事务后续的改动,当前事务查询到的数据还是事务刚刚启动时候内容。这个实际上就是MySQL的MVCC做的事情。 1234567891011-- 事务...
  • Redisson限流器(RateLimiter)

    尝试获取令牌lua脚本解析1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606...
  • FullGC引发的服务宕机问题

    现象测试环境频繁FullGC,导致整个服务停止对外提供服务。同时使用arthas增强失败,无法attach服务 排查过程 调用方/测试反映接口超时,无法正常调用 监控发现服务频繁发生fullgc,同时通过jstat命令发现fullgc频率极高,年轻...
  • Redisson分布式锁

    123456789101112131415<T> RFuture<T> tryLockInnerAsync(long waitTime, long leaseTime, TimeUnit unit, long threadId...
  • RocketMQ基础篇Broker存储消息

    Broker是如何存储消息的 流程图 代码解释写入CommitLog1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950...