我在同一子网中有两台机器。我想尽快在两台机器之间交换对象。它使用的是g ++,它在Debian / Ubuntu上。这些机器加载了流量和CPU。
一种方法是通过套接字将对象的压缩序列化作为二进制数据包发送(使用Google协议缓冲区进行编码)。
CORBA似乎对此
我阅读了一些关于ONC-RPC和Sun RPC的文章
Boost是否有一个高效的库?
我相信你有其他想法。您将如何保证2011年的最佳响应时间...我可以放弃一点点响应时间来获得标准解决方案。
答案 0 :(得分:1)
您可以将用于序列化的Google protobuf与Boost.ASIO结合使用来处理实际的I / O.这应该在性能和实施时间之间提供良好的平衡。
答案 1 :(得分:1)
Zeromq人已经尝试使用Linux实时内核来保证低延迟。如您所见,为此保证必须牺牲大量的平均延迟。根据应用程序,它可能是必要的权衡。
答案 2 :(得分:1)
当你说你想“尽快在两台机器之间交换对象”时,听起来你感兴趣的是尽可能地限制网络带宽。如果是这种情况,您可以考虑使用FAST protocol。
首字母缩略词FAST正式意味着“FIX适合流媒体”,这意味着它最适合FIX协议,但事实并非如此。 FAST可以与任何协议一起使用。
FAST编码的数据包可能非常小,一个好的实现将在编码和解码中使用有限的CPU资源。权衡是FAST协议并不是世界上人类最容易理解的东西,并且代码可能非常棘手。有可用的开源产品实现,可能适合您的需求,也可能不适合您。 C ++的一个这样的实现是QuickFAST。