代码之家  ›  专栏  ›  技术社区  ›  Mike

我可以使用哪个库来进行简单、轻量级的消息传递?

  •  9
  • Mike  · 技术社区  · 15 年前

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

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

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

    3. 库必须能够发送和接收任意大的字符串(最高可达3GB+)。

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

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

    3 回复  |  直到 15 年前
        1
  •  12
  •   Nikolai Fetissov    15 年前

    看一看 ØMQ ,即ZeroMQ。

        2
  •  2
  •   clyfe    15 年前

    Apache Qpid 为实现服务器和客户端库 Advanced 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++中可用:
        3
  •  0
  •   sg7 Krafty Coder    8 年前

    我用 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 . 现在在贝蒂舞台上。