-
消费消息逻辑消费消息逻辑主要分为三个模块
Rebalance
拉取消息
消费消息Rebalance123456789101112131415161718192021// RebalanceImplpublic void doRebalance(fi...
-
生产者发送消息的主要流程图如上图所示。具体的代码由于比较多,我就不在这边贴出来的。主要讲一下我认为比较重要的点
消息队列负载均衡Producer会每隔30s从Namesrv获取最新的Topic路由信息,并缓存到本地
123456789101112th...
-
完整流程图
一句话总结流程总结为一句话就是:客户端在发起远程调用时,具体的代理类会被InvokerInvacationHandler拦截,在这里面根据一些条件和负载均衡策略,选择出其中一个符合条件的Invoker,进行远程调用。提供者收到请求后,会从...
-
完整流程图
一句话概括流程具体可以概括为以下五点
两种模式(饿汉式/懒汉式)
组装URL并向注册中心注册
获取服务提供者信息并根据协议(默认Dubbo协议)开始Invoker的创建流程
通过Cluster包装Invoker(默认Failove...
-
完整流程图
一句话概括流程在SpringIOC容器刷新完毕后 (export方法 ContenxtRefreshEvent),根据配置参数组装成URL,通过 proxyFactory.getInvoker ,利用javassist进行对象代理,封装真...
-
SQL四种语言先介绍下SQL的四种语言
DDL:数据库定义语言 定义数据库结构,用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束。DDL不需要commit
相关语句:CREATE,ALTER...
-
从ReentrantLock看AQSAQS的三个核心点
state
协作类实现的获取锁/释放锁的方法
FIFO队列
关于statestate是用来判断是否有线程占用当前锁,与另一个参数exclusiveOwnerThread 配合使用
以Reent...
-
工作流程图
由于netty动辄管理100w+的连接,每一个连接都会有很多超时任务。比如发送超时、心跳检测间隔等,如果每一个定时任务都启动一个Timer,不仅低效,而且会消耗大量的资源。
构造函数1234567891011121314151617181...
-
垃圾收集相关知识思维导图
回收的对象堆,方法区(方法区虚拟机不要求实现)
如何判断一个对象可以回收引用计数算法主流的Java虚拟机没有使用该算法。因为简单的引用计数无法解决循环引用问题,需要很多额外的操作
可达性分析算法GC ROOT 到该对象是否可...
-
创建一个对象的流程
这边着重讲几个东西
一个对象在创建前就已经知道会占用多大的空间
关于分配内存时候的并发问题关于分配内存的并发问题,需要从垃圾回收器等方面考虑
首先先介绍两个概念,指针碰撞与空闲列表
假如我们的回收算法,在回收对象的时候还会有整理的...