Aeron 会丢失消息吗?

Can Aeron lose messages?

如果我通过发布向某个通道(IPC 或 UDP)提供消息,并且此操作 returns 一个正值(新位置),这意味着数据已写入磁盘(fsynced 到 /dev/shm) 或不?换句话说...... Aeron 是否依赖于页面缓存? OS 在我通过发布提供新数据并收到正值响应后立即关闭时,我可能会丢失数据吗?

是的,可以。返回正位置值仅表示消息已写入术语缓冲区。术语缓冲区通常存储在纯内存文件系统中。例如。在 Linux 这是 /dev/shm

请注意,fsyncing /dev/shm 没有任何效果,因为它不受非易失性存储的支持。

Aeron Archive 是持久存储消息的方法。