为对等系统编写C ++客户端/服务器的最佳RPC包是什么?

时间:2012-04-19 23:15:34

标签: c++ xml-rpc rpc protocol-buffers

我有一个执行计算量大的本地处理的程序。计算软件包具有16MiB输入缓冲区,并产生10KB至16MiB的输出。这一切都发生在多线程环境中。

我有许多受计算限制的用户。我有兴趣添加对点到多点处理的支持。也就是说,客户端将在组织中的多台计算机上运行。主人会找到可用的客户端,发送16MiB缓冲区,然后得到结果。

主人将拥有可用客户的列表。然后它会向每个客户端发送一条消息,告知它是免费的。客户端将为他们拥有的每个核心启动一个线程。每个线程都会向主站询问工作缓冲区,计算结果,然后将结果发送给主站。主人将把每个客户的结果合并到最终输出中。

典型的运行包括在100到50,000个16MiB缓冲区之间进行处理。输出通常在100MB到10GB范围内。缓冲区之间没有数据依赖关系。

我正在寻找安排客户端和服务器之间通信的最佳方法。我的计划是使用某种RPC。我不想在客户端或服务器中嵌入Web服务器。相反,我的计划是简单地在TCP套接字上接收连接并拥有某种基本的RPC。

以下是我正在考虑的选项:

  1. 我可以扮演自己的客户端/服务器系统,并使用协议缓冲区将整个事物放在一起。
  2. 我可以使用其中一个RPC systems for potocol buffers
  3. 我可以嵌入一个Web服务器并使用XMLRPC。
  4. 实现语言是C ++。该程序针对Linux,MacOS和mingw for Windows进行编译。

    感谢。

1 个答案:

答案 0 :(得分:0)

我们发现0MQ符合我们的标准。