Có nhà môi giới MQTT nào tồn tại các tin nhắn QoS 1/2 vào đĩa không?


11

Cho đến nay, EMQ (Nhà môi giới Erlang MQTT) dường như không duy trì các tin nhắn QoS 1/2 vào đĩa: Làm thế nào để EMQ duy trì các tin nhắn QoS 1/2?

Vì vậy, trong trường hợp máy chủ khởi động lại bất ngờ, giới hạn bộ nhớ hoặc thông báo sự kiện khác có thể bị mất mặc dù các thông báo cấp độ 1/2 của QoS phải được gửi ít nhất hoặc chính xác một lần.

Có nhà môi giới MQTT nào duy trì tin nhắn QoS 1/2 vào đĩa do đó đảm bảo phân phối không?


Câu trả lời:


8

Tôi nghĩ Mosquitto lưu các tin nhắn trong bộ nhớ vào đĩa.

kiên trì [đúng | sai] Nếu đúng, kết nối, đăng ký và dữ liệu tin nhắn sẽ được ghi vào đĩa trong mosquitto.db tại vị trí được quyết định bởi kiên trì_location. Khi mosquitto được khởi động lại, nó sẽ tải lại thông tin được lưu trữ trong mosquitto.db. Dữ liệu sẽ được ghi vào đĩa khi mosquitto đóng và cũng theo các khoảng thời gian định kỳ như được xác định bởi autosave_interval. Việc viết cơ sở dữ liệu kiên trì cũng có thể bị ép buộc bằng cách gửi mosquitto tín hiệu SIGUSR1. Nếu sai, dữ liệu sẽ chỉ được lưu trong bộ nhớ. Mặc định là sai.


7

VerneMQ là một ví dụ về một nhà môi giới MQTT đảm bảo phân phối các tin nhắn QoS1 / 2 được chấp nhận khi chúng được ghi vào đĩa (sử dụng LevelDB). VerneMQ, theo một cách nào đó, tương tự như EMQ ở chỗ nó cũng là nguồn mở và hỗ trợ phân cụm (mặc dù sử dụng một công nghệ khác). Tiết lộ đầy đủ, tôi là một kỹ sư VerneMQ.


Câu hỏi phụ: Các bạn có cung cấp nhà môi giới VerneMQ công khai để thử nghiệm và đánh giá không?
Ross

1
Xin chào @Ross, chúng tôi có một phiên bản công khai đang chạy trên public.vernemq.com:1883, nhưng bạn không thể thực hiện kiểm tra tải ở đó vì nó chạy trên một máy ảo nhỏ - vì vậy đừng hy vọng nó sẽ hoạt động rất tốt . Nó cũng có các hạn chế về số lượng kết nối đồng thời có nguồn gốc từ một IP duy nhất. Nếu bạn muốn bạn có thể liên hệ với chúng tôi và chúng tôi rất vui lòng xem liệu chúng tôi có thể hỗ trợ trường hợp sử dụng của bạn không. Bạn có thể viết cho chúng tôi thông tin tại vernemq dot com hoặc điền vào mẫu liên hệ tại đây: vernemq.com/service.html
Lars Hesel Christensen

1
Cảm ơn, tôi không cần thực hiện kiểm tra tải, chỉ cần kiểm tra xem tôi có thể kết nối với các nhà môi giới khác nhau hay không và xem có bất kỳ vấn đề tương thích nào không.
Ross

1
Điều đó nhắc nhở tôi, phiên bản công khai tương đối cũ - tôi sẽ xem liệu tôi có thể nâng cấp nó lên phiên bản mới nhất hôm nay không.
Lars Hesel Christensen

5

HiveMQ dường như cung cấp nhiều tùy chọn khác nhau để duy trì dữ liệu phiên, bao gồm cả tin nhắn QoS 1/2.

Các tùy chọn kiên trì được liệt kê ở đây :

  • Kiên trì tập tin
  • Kiên trì trong bộ nhớ

Theo mặc định, HiveMQ sẽ sử dụng tính bền vững của tệp , giúp lưu tất cả dữ liệu vào đĩa để có thể truy xuất bất kỳ lúc nào.

Để đảm bảo tính thống nhất của dữ liệu giữa các nhà môi giới khởi động lại, HiveMQ sử dụng tính bền vững của đĩa theo mặc định. Điều đó có nghĩa là ngay cả khi người môi giới dừng hoặc gặp sự cố, tất cả dữ liệu sẽ được giữ nguyên và sau khi khởi động lại, người môi giới có thể tiếp tục hoạt động như thể không có gì xảy ra.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.