是Boost消息队列文件级持久性

Is Boost Message Queues file Level Persistence?

本文关键字:持久性 文件 队列 Boost 消息      更新时间:2023-10-16

Boost消息队列文件级持久化吗?

在boost IPC文档中提到消息队列是文件级或内核级的持久性。

http://www.boost.org/doc/libs/1_38_0/doc/html/interprocess/some_basic_explanations.html

所以我的问题是他们的文件级持久性意味着可以生存的重启或持续在内存中,如果我们重启也。

如果它们默认是内核级持久化,我们如何使它们成为文件级持久化?

编辑:当我注销系统并再次登录时,队列在那里并且工作正常,但当我重新启动系统时,队列已删除,我正在使用ubuntu,并希望实现一个可以在服务器崩溃时存活的队列,我该如何做到这一点?

正如文档所解释的那样,这种区别取决于实现。

有些平台将有内核支持(因此,共享IPC对象的"内核级持久性"),有些则没有:

可以看到,Boost。进程间定义了一些具有"内核或文件系统"持久性的机制。这是因为POSIX允许本地进程间通信实现这种可能性。例如,可以使用内存映射文件实现共享内存并获得文件系统持久性(例如,没有正确的已知方法可以使用本机共享内存模拟Windows共享内存的用户库的内核持久性,或者使用POSIX共享内存的进程持久性,因此唯一可移植的方法是定义"内核或文件系统"持久性)。

它是而不是你可以直接切换。

更重要的是,它可能不是您所追求的(持久性是关于对象的生命周期,而不是关于消息,AFAICT)