Tôi có một ứng dụng định kỳ cần gửi một bản chụp trạng thái hiện tại của nó, hiện tại sẽ được đại diện bởi khoảng 500.000 tin nhắn 64 byte. Tôi đã gặp khó khăn khi nhận được nhiều thư này được gửi và nhận nhanh chóng và đáng tin cậy khi sử dụng ZMQ.Cài đặt thích hợp cho ZMQ khi gửi tin nhắn 500K 64 byte là gì?
Tôi đã sử dụng PUB/SUB trên tcp để thực hiện việc này, nhưng tôi không kết hợp với mẫu hoặc giao thức miễn là nó sẽ hoàn thành công việc. Trong các thí nghiệm của tôi, tôi tập trung vào việc gửi và nhận dấu nước cao, gửi và nhận các cài đặt bộ đệm, và thêm một số giấc ngủ vào vòng lặp gửi để cố gắng làm chậm nó xuống một chút. Với các thiết lập có vẻ khá hào phóng với tôi (500K HWM, bộ đệm 10MB) và chỉ sử dụng kết nối loopback, các tin nhắn vẫn chưa được nhận một cách nhất quán.
Tôi quan tâm đến cài đặt thích hợp cho các thông số này hoặc các thông số điều chỉnh khác, và rộng hơn về cách lý do về hiệu ứng mà các cài đặt khác nhau sẽ có.
Một số thông tin chi tiết có thể giúp cung cấp một câu trả lời thích hợp:
Sự phân bố là một đến nhiều. Số người nhận dự kiến là khoảng 20.
Mỗi thông báo đại diện cho tập hợp thông tin về một công cụ tài chính khác nhau, tất cả đều được quan sát cùng một lúc. Trong các lý lẽ tâm trí của tôi có thể được thực hiện cho cả hai kết hợp chúng thành một thông điệp lớn (tập hợp tất cả các thông điệp một cách hợp lý tạo nên một ảnh chụp hoàn chỉnh) và để giữ chúng riêng biệt (khách hàng có thể chỉ quan tâm đến một số công cụ và tôi nghĩ điều này sẽ giúp ích cho bạn) lọc chúng ra dễ dàng hơn).
Tần suất dự kiến của thư về cơ bản không nhanh hơn 20 mili giây và không chậm hơn 5 giây. Nơi tôi thực sự đất có thể sẽ bị ảnh hưởng bởi cân nhắc hiệu suất (tức là, máy chủ của tôi có thể thực sự bơm các thông điệp ra sao và tốc độ dữ liệu nào sẽ chứng minh áp đảo cho khách hàng).
Bản phân phối của bạn là gì? 1-to-1, một đến nhiều, một trong nhiều? Tần suất bạn gửi đi tiểu bang? Bạn có thực sự xuất bản trạng thái 32MB không? Tại sao gửi nó như là 500K tin nhắn cá nhân? Tại sao không phải là một tin nhắn? Lý do là gì? Vui lòng giải thích trường hợp sử dụng của bạn chi tiết hơn, nếu bạn muốn câu trả lời hữu ích. –