接上文
0. 简介
最近我们用 Aeron 实现了 Mesh agent 与 sdk 之间的共享内存通信,但是在使用过程中越来越感觉到 Aeron 框架太重了,其中很大部分功能完全用不到,有些想要自定义的逻辑很难在现有框架中实现。所以我们计划深入到 Aeron 源码中,看看它是如何实现的,最终尝试实现一个轻量的 Mesh 共享内存通信类库。上文分析了 Conductor 的逻辑,本文继续分析 Ipc Publication 的逻辑。
1. Driver Conductor - add[Exclusive]Publication
在发送数据之前,需要先向 Driver Conductor 发送ADD_[EXCLUSIVE_]PUBLICATION命令,让 Driver 初始化通信的共享内存结构。至于 Conductor 交互的逻辑不再赘述,直接看 Driver Conductor 处理ADD_[EXCLUSIVE_]PUBLICATION命令的逻辑。处理逻辑的入口在io.aeron.driver.ClientCommandAdapter: