aeron - Aeron 会丢失消息吗?
问题描述
如果我通过发布向某个通道(IPC 或 UDP)提供消息,并且此操作返回一个正值(新位置),这意味着数据是否已写入磁盘(fsynced 到 /dev/shm)?换句话说... Aeron 是否依赖页面缓存?在我通过发布提供新数据并收到正值作为响应后立即关闭操作系统时,我可能会丢失数据吗)。
解决方案
是的,它可以。返回正位置值仅表示消息已写入术语缓冲区。术语缓冲区通常存储在仅内存文件系统中。例如在 Linux 上这是/dev/shm
.
请注意,fsyncing/dev/shm
没有任何效果,因为它不受非易失性存储的支持。
Aeron Archive 是持久存储消息的方法。
推荐阅读
- c++ - SDL2 Windows 未定义对 Eclipse 的“WinMain@16”的引用
- ios - 在 SwiftUI 中使用谷歌登录时来自 OIDAuthorizationService 的 NSInvalidArgumentException
- regex - 如何以非贪婪的方式从许多实例中匹配“{*各种*字符串*}”?
- vb.net - 无法加载错误版本的 SQL Server 程序集
- python - 在新的 for 循环中使用存储在旧 for 循环中的项目名称
- oracle - 找不到 Oracle Apex AOP 服务器。检查它是否正在运行
- excel - Excel字符串变量不在范围内工作
- c++ - 我可以为特定的 wx[Aui]Notebook 选项卡使用自定义颜色吗
- git - git 从带有子模块的 repo 中的先前提交创建新分支
- r - 如何使用数据逐行比较方差分析