2016-01-26 15 views
5

Tôi đang sử dụng mosquitto (http://mosquitto.org/) làm nhà môi giới MQTT và đang tìm kiếm lời khuyên về người đăng ký cân bằng tải (cùng một chủ đề). Điều này đạt được như thế nào? Mọi thứ tôi đã đọc về giao thức đều nêu rõ rằng tất cả người đăng ký là cùng một chủ đề sẽ được cung cấp một thông báo được xuất bản.Sử dụng MQTT với nhiều người đăng ký

Điều này có vẻ không hiệu quả, và vì vậy tôi đang tìm cách gửi thông báo được xuất bản cho một trong những người đăng ký được kết nối theo cách tiếp cận vòng tròn đảm bảo trạng thái cân bằng tải.

Nếu điều này là không thể với MQTT, làm cách nào để người đăng ký tránh bị choáng ngợp với thư?

Trả lời

6

Thông thường bạn thiết kế các ứng dụng MQTT theo cách mà bạn không có người đăng ký quá tải. Bạn có thể đạt được điều này bằng cách truyền tải các chủ đề khác nhau.

Nếu bạn thực sự không thể làm điều đó, hãy nhìn vào các thuê bao chia sẻ cách tiếp cận môi giới MQTT tinh vi như MessageSightHiveMQ có. Đây chính xác là tính năng bạn đang tìm kiếm nhưng phụ thuộc vào nhà môi giới và không phải là một phần của thông số MQTT chính thức.

2

MQTT là giao thức Pub/Sub, cơ sở cho việc phân phối 1 đến nhiều thư không phải từ 1 đến 1 (trong số nhiều) bạn mô tả. Những gì bạn mô tả sẽ giống như một hệ thống xếp hàng thư khác biệt với Pub/Sub.

Mosquitto như là một thực hiện thuần túy của giao thức này không hỗ trợ việc phân phối khi bạn mô tả nó. Một giải pháp là cho chúng tôi một hàng đợi địa phương với trong thuê bao mà các tin nhắn đến được thêm vào và sau đó được tiêu thụ bởi một hồ bơi thread.

Tôi tin rằng thiết bị Message Sight của IBM có thể cung cấp loại giao thư mà bạn đang tìm kiếm như một phần mở rộng cho giao thức được gọi là Shared Subscriptions, nhưng với điều này cho phép nó bị lệch khỏi thông số MQTT thuần túy.

+0

Đăng ký được chia sẻ cũng sẽ là một phần của thông số MQTT v5 – hardillb

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