e3d4220997f5f573c0ff99a1c212b1f7d3ee02ee
原先主站每 60 秒无条件重建并推送整份快照:实测 12 账号时传输约 346 KiB/次、 约 486 MiB/天,节点每次都要 base64 解码、SHA-256、gunzip、JSON 校验后判 APPLY_OLD 丢弃。而 revision 是内容寻址的,订阅不常变动时这些推送纯属浪费。 改为: - 内容变化即推:各处已有的 requestSubscriptionSync()(刷新成功、绑定/改绑、 重置 Key、增删停用账号、过滤开关变更)保持原样,延迟仍在数秒内。 - 低频保活:新增 scheduledSubscriptionKeepalive(),默认 6 小时一次,仅用于刷新 节点「最近收到快照」的时刻。节点的过期判定依据该时刻(见 storageNode 侧修复), 因此保活周期必须远小于节点 SubscriptionMaxStaleSeconds(默认 7 天)。 - 节点上线即推:initChannel 保持推送一次,覆盖节点刚重启、本地尚无快照的情况。 空闲流量约 486 MiB/天 -> 约 1.4 MiB/天(约三个数量级)。 测试:432 项全过。新增 SubscriptionKeepaliveTest 锁定不变量——保活入口必须存在, 且周期小于节点有效期的 1/4、初始延迟小于一个周期;否则节点可能在两次保活之间判过期。
Description
No description provided
7.8 MiB
Languages
Java
99.2%
PLpgSQL
0.5%
Shell
0.3%