• RocketMQ基础篇Consumer消费消息

    消费消息逻辑消费消息逻辑主要分为三个模块 Rebalance 拉取消息 消费消息Rebalance123456789101112131415161718192021// RebalanceImplpublic void doRebalance(fi...
  • RocketMQ基础篇Producer发送消息

    生产者发送消息的主要流程图如上图所示。具体的代码由于比较多,我就不在这边贴出来的。主要讲一下我认为比较重要的点 消息队列负载均衡Producer会每隔30s从Namesrv获取最新的Topic路由信息,并缓存到本地 123456789101112th...
  • Dubbo基础篇远程调用

    完整流程图 一句话总结流程总结为一句话就是:客户端在发起远程调用时,具体的代理类会被InvokerInvacationHandler拦截,在这里面根据一些条件和负载均衡策略,选择出其中一个符合条件的Invoker,进行远程调用。提供者收到请求后,会从...
  • Dubbo基础篇服务引用

    完整流程图 一句话概括流程具体可以概括为以下五点 两种模式(饿汉式/懒汉式) 组装URL并向注册中心注册 获取服务提供者信息并根据协议(默认Dubbo协议)开始Invoker的创建流程 通过Cluster包装Invoker(默认Failove...
  • Dubbo基础篇服务暴露

    完整流程图 一句话概括流程在SpringIOC容器刷新完毕后 (export方法 ContenxtRefreshEvent),根据配置参数组装成URL,通过 proxyFactory.getInvoker ,利用javassist进行对象代理,封装真...
  • MySQL锁事

    SQL四种语言先介绍下SQL的四种语言 DDL:数据库定义语言 定义数据库结构,用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束。DDL不需要commit 相关语句:CREATE,ALTER...
  • 从ReentrantLock看AQS

    从ReentrantLock看AQSAQS的三个核心点 state 协作类实现的获取锁/释放锁的方法 FIFO队列 关于statestate是用来判断是否有线程占用当前锁,与另一个参数exclusiveOwnerThread 配合使用 以Reent...
  • 时间轮

    工作流程图 由于netty动辄管理100w+的连接,每一个连接都会有很多超时任务。比如发送超时、心跳检测间隔等,如果每一个定时任务都启动一个Timer,不仅低效,而且会消耗大量的资源。 构造函数1234567891011121314151617181...
  • 垃圾收集相关知识

    垃圾收集相关知识思维导图 回收的对象堆,方法区(方法区虚拟机不要求实现) 如何判断一个对象可以回收引用计数算法主流的Java虚拟机没有使用该算法。因为简单的引用计数无法解决循环引用问题,需要很多额外的操作 可达性分析算法GC ROOT 到该对象是否可...
  • 对象创建(new一个对象)

    创建一个对象的流程 这边着重讲几个东西 一个对象在创建前就已经知道会占用多大的空间 关于分配内存时候的并发问题关于分配内存的并发问题,需要从垃圾回收器等方面考虑 首先先介绍两个概念,指针碰撞与空闲列表 假如我们的回收算法,在回收对象的时候还会有整理的...