
0. 简介

1. Driver Conductor 主干逻辑

processTimers(nowNs) 处理心跳和超时
clientCommandAdapter.receive() 处理来自 Client Conductor 的命令(也就是上图中的红线)
driverCmdQueue.drain(...) 处理来自 Sender 和 Receiver 的命令(也就是上图中的蓝线)
维护 publisher 的 limit 位置
name resolver
2. Client Conductor --> Driver Conductor

2.1 cncByteBuffer 是什么?



2.2 ManyToOneRingBuffer 是个啥?

tailPosition 维护尾部的位置信息
headPosition 和 headCachePosition 维护头部的位置信息
correlationIdCounter 用于生成唯一的命令 ID,用于关联命令响应
consumerHeartbeat 消费端的心跳,也就是消费时更新个时间戳(更新的逻辑就位于上面提到的processTimers(nowNs) 方法中)
2.3 Client Conductor 如何发送命令?

cnc.dat 文件可以映射
cncVersion 信息不为空,也就是已经初始了
to-driver Buffer 有心跳,也就是 Driver 的消费逻辑正常启动了

3. Driver Conductor --> Client Conductor





文章转载自BUG侦探,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




