11

我将启动一个需要在分布式节点之间进行通信的项目(该项目使用 C++)。我需要一个轻量级的消息传递库来在节点之间传递非常简单的消息(基本上只是文本字符串)。库必须具有以下特征:

  1. 无需外部设置。我需要能够在我的代码中启动并运行所有内容——我不想要求用户安装任何软件包或编辑任何配置文件(除了要连接的 IP 地址和端口列表)。

  2. 库使用的底层协议必须是 TCP(或者如果是 UDP,则库必须保证最终收到消息)。

  3. 该库必须能够发送和接收任意大的字符串(最多考虑 3GB+)。

该库不需要支持任何安全机制、容错或加密——我只需要它快速、简单且易于使用。我考虑过 MPI,但得出的结论是,我的项目需要在用户机器上进行太多设置。

你会为这样的项目推荐什么库?我会自己动手,但由于时间限制,我认为这不可行。

4

3 回答 3

12

看看ØMQ,即ZeroMQ。

于 2010-04-10T21:19:56.393 回答
2

Apache Qpid为高级消息队列协议实现服务器和客户端库。它具有许多功能,您可以从中使用以下功能:

  1. 客户端可以在代理上匿名连接,指定代理的 IP/端口
  2. 传输协议为 TCP 或 SCTP
  3. 它支持使用拉式或推式语义的大型消息
  4. 很快
  5. 用法很简单,在 C++ 中可用:
于 2010-04-10T21:05:16.470 回答
0

我将nanomsg用于我的分布式系统。 nanomsg是用 C 编写的稳定、成熟、支持良好的轻量级消息传递协议库。

它满足您的所有要求:

1)  There is no external setup required
2)  TCP underlying protocol is a primary one. 
3)  Message sizes supported by nanomsg are expressed as a 64-bit integer.
 (The default message size is 1024kB. This can be easily changed by API call to 
 support any size. The maximum size is limited only by available addressable memory!)

另一个值得考虑的好图书馆是nng。现在处于斗鱼阶段。

于 2017-11-20T14:24:15.887 回答