2010-04-10 38 views
9

Tôi sẽ bắt đầu một dự án yêu cầu liên lạc giữa các nút được phân phối (dự án nằm trong C++). Tôi cần một thư viện thông điệp nhẹ để truyền các thông điệp rất đơn giản (về cơ bản chỉ là các chuỗi văn bản) giữa các nút. Thư viện phải có các đặc điểm sau:Tôi có thể sử dụng thư viện nào để truyền thông điệp đơn giản, nhẹ nhàng?

  1. Không yêu cầu thiết lập bên ngoài. Tôi cần có khả năng chạy mọi thứ trong mã của mình - Tôi không muốn yêu cầu người dùng cài đặt bất kỳ gói nào hoặc chỉnh sửa bất kỳ tệp cấu hình nào (ngoài danh sách địa chỉ IP và cổng để kết nối).

  2. Giao thức cơ sở mà thư viện sử dụng phải là TCP (hoặc nếu là UDP, thư viện phải đảm bảo việc nhận thư cuối cùng).

  3. Thư viện phải có khả năng gửi và nhận các chuỗi lớn tùy ý (nghĩ tới tối đa 3GB +).

Thư viện không cần hỗ trợ bất kỳ cơ chế bảo mật, khả năng chịu lỗi hoặc mã hóa nào - tôi chỉ cần nó nhanh chóng, đơn giản và dễ sử dụng. Tôi đã xem xét MPI, nhưng kết luận nó sẽ đòi hỏi quá nhiều thiết lập trên máy của người dùng cho dự án của tôi.

Bạn sẽ giới thiệu thư viện nào cho dự án như vậy? Tôi sẽ tự mình cuộn, nhưng do những ràng buộc về thời gian, tôi không nghĩ rằng điều đó sẽ khả thi.

Trả lời

12

Hãy xem ØMQ, ví dụ: ZeroMQ.

+1

Tôi đang xem 0mq và dường như xung đột với yêu cầu 1 trong câu hỏi. Tôi đã bỏ lỡ một cái gì đó? – Liang

+0

Bạn đã bỏ lỡ bảy năm kể từ khi câu hỏi này được đăng :) –

+0

@Liang Hãy xem thư viện tương tự [nanomsg] (http://nanomsg.org/) hoặc [nng] (https://github.com/nanomsg/nng). Không cần thiết lập bên ngoài. – sg7

2

Apache Qpid triển khai thư viện máy chủ và máy khách cho Advanced Message Queuing Protocol. Nó có nhiều tính năng, từ đó bạn có thể sử dụng như sau:

  1. Khách hàng có thể kết nối nặc danh về môi giới, định môi giới của IP/port
  2. giao thức Giao thông vận tải is TCP or SCTP
  3. nó có hỗ trợ cho large messages using either pull style or push style semantics
  4. Đó là fast
  5. Cách sử dụng rất đơn giản và có sẵn trong C++:
0

Tôi sử dụng nanomsg cho hệ thống phân phối của mình. nanomsg ổn định, trưởng thành, cũng được hỗ trợ nhẹ thư viện giao thức tin nhắn viết bằng C.

Nó đáp ứng tất cả yêu cầu của bạn:

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!) 

Thư viện tốt khác để xem xét là nng. Nó đang ở giai đoạn betta bây giờ.

Các vấn đề liên quan