接上文
《Aeron 是如何实现的?—— Ipc Publication》
《Aeron 是如何实现的?—— Ipc Subscription》
0. 简介
上文分析了 Ipc Subscription 的逻辑,本文继续分析一下 ipc 场景异常情况处理。
1. 两个心跳
总的来说,Client 与 Driver 之间是通过心跳超时判断对方是否异常。
-
Client 周期性检查 Driver 是否超过 driverTimeoutMs 没有心跳。
-
Driver 周期性检查 Client 是否超过 clientLivenessTimeoutMs 没有心跳。
Driver 没有心跳是个严重的问题,Client 默认将会自杀;Client 没有心跳,Driver 将会把相关的资源(pub 和 sub 关系等)关闭。下面详细看一下。