我可以使用什么库来进行简单,轻量级的消息传递?

时间:2010-04-10 20:40:16

标签: c++ message-passing distributed-system

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

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

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

  3. 图书馆必须能够发送和接收任意大字符串(最多3GB +)。

  4. 库不需要支持任何安全机制,容错或加密 - 我只需要它快速,简单且易于使用。我已经考虑过MPI了,但总结说在我的项目中需要在用户的机器上设置太多。

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

3 个答案:

答案 0 :(得分:12)

看看ØMQ,即ZeroMQ。

答案 1 :(得分:2)

Apache QpidAdvanced Message Queuing Protocol实现服务器和客户端库。它有许多功能,您可以使用以下功能:

  1. 客户端可以在代理上连接匿名,指定代理的IP /端口
  2. 传输协议is TCP or SCTP
  3. 它支持large messages using either pull style or push style semantics
  4. 这是fast
  5. 用法很简单,在C ++中可用:

答案 2 :(得分: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。现在处于斗鱼阶段。

相关问题