2010-04-10 69 views
9

我將開始一個需要分佈式節點之間通信的項目(該項目使用C++)。我需要一個輕量級消息傳遞庫來在節點之間傳遞非常簡單的消息(基本上只是文本串)。該庫必須具有以下特徵:我可以使用什麼庫來完成簡單輕量級的消息傳遞?

  1. 無需外部設置。我需要能夠在我的代碼中獲得一切,並且運行 - 我不想要求用戶安裝任何軟件包或編輯任何配置文件(除了要連接的IP地址和端口列表外)。

  2. 庫使用的底層協議必須是TCP(或者如果它是UDP,庫必須保證最終收到該消息)。

  3. 庫必須能夠發送和接收任意大的字符串(想想高達3GB +)。

該庫不需要支持任何安全機制,容錯或加密 - 我只需要它快速,簡單,易於使用。我已經考慮過MPI,但得出結論認爲在我的項目中,用戶機器上需要安裝太多設置。

你會爲這樣的項目推薦什麼樣的圖書館?我會推出自己的產品,但由於時間限制,我認爲這不可行。

回答

12

ØMQ看一看,即ZeroMQ。

+1

我在看0mq,它似乎與問題中的要求1相沖突。我錯過了什麼嗎? – Liang 2017-08-08 06:36:17

+0

發佈此問題之後錯過了七年:) – 2017-08-09 00:05:42

+0

@梁看看類似的圖書館[nanomsg](http://nanomsg.org/)或[nng](https://github.com/nanomsg/nng )。無需外部設置。 – sg7 2017-12-09 20:10:35

2

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語言簡單和可用++:
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。現在在betta階段。

相關問題