我需要在两个进程之间传输金融数据(目前c ++和c#,未来的c ++和c ++在Linux上)。它的实时报价 - 例如1 100,1 100.1,2 101.2等等。)。数据具有明确定义的格式。延迟必须很低。我自己在zeromq和使用共享内存之间做出选择。我有几个关于zeromq的问题:
我不需要在不同的主机上运行我的部件或类似的东西。所以我在localhost上有一个生产者 - 一个消费者模式。我不确定是否应该将zeromq用于这种简单的场景,或者我应该只使用共享内存而这是不是?
答案 0 :(得分:6)
在我看来,共享内存是令人讨厌且容易出错的。 ZMQ很优雅。我总是喜欢ZMQ路线。
如果有的话,ZMQ将更容易设置而不是共享内存 - 而不是相反。
答案 1 :(得分:3)
ZeroMQ可能比共享内存更快,因为它在缓冲中被烘焙。消息传递模式还提供了一种更灵活的方法来解决问题。与往常一样,进行自己的测试并确定您喜欢的测试。
我希望ZeroMQ版本能够更加简单。
答案 2 :(得分:0)
ZMQ使用Linux套接字进行IPC。上次我检查它们仅限于传递100K数据。因此,如果要传递更大的数量,则需要使用共享内存。 Boost共享内存程序包很好用,但是我不熟悉其他语言中的绑定。