一对多的IPC

时间:2012-04-02 18:47:33

标签: c++ linux ipc one-to-many shared-memory

我正在寻找一种ipc机制,它允许从一个进程到多个(数千)的高吞吐量数据更新。

“服务器”过程将负责以高频率更新数据结构。更新后,我想通知更新的“客户端”进程,并允许这些进程读取新数据。

在Linux或FreeBSD环境下,有什么好办法可以解决这个问题?

2 个答案:

答案 0 :(得分:3)

我建议使用ZeroMQ。它是一个快速,轻量级,跨平台的跨语言消息系统,已经满足您的所有要求。它易于使用,而且非常强大。它可以在很多很多模式下运行,其中一种是一对多的消息传递(在CS-speak中称为广播)。

答案 1 :(得分:2)

虽然不清楚您的设置限制或要求(同一台机器中的所有进程?),但看起来最通用的解决方案是使用与平台无关且分布式的MPI。特别是,它提供了broadcasting functionality

缺点是您必须在MPI API之后对设计进行一些建模。