Điều gì xảy ra nếu Mosquitto hết bộ nhớ để lưu trữ tin nhắn QoS 1/2?


8

Trong MQTT, tin nhắn có QoS 1 hoặc 2 phải được gửi ít nhất một lần (tin nhắn QoS 2 phải được gửi chính xác một lần). Nếu khách hàng không được kết nối, nhà môi giới phải lưu trữ tin nhắn cho đến khi khách hàng sẵn sàng nhận nó.

Các blog của HiveMQ có một điểm thú vị:

Nhưng điều gì xảy ra nếu một khách hàng không trực tuyến trong một thời gian dài? Ràng buộc để lưu trữ tin nhắn thường là giới hạn bộ nhớ của hệ điều hành. Không có cách tiêu chuẩn để làm gì trong kịch bản này. Nó hoàn toàn phụ thuộc vào trường hợp sử dụng. Trong HiveMQ, chúng tôi sẽ cung cấp khả năng thao túng tin nhắn xếp hàng và thanh lọc chúng.

Vì điều này dường như phụ thuộc vào nhà môi giới, Mosquitto xử lý tình huống này như thế nào? Có phải nó chỉ bị sập sau khi hết bộ nhớ hoặc những tin nhắn cũ cuối cùng bị thanh trừng?

Câu trả lời:


9

Tin nhắn được lưu vào đĩa không chỉ được giữ trong bộ nhớ.

Nhìn vào autosave_intervalautosave_on_changecác tùy chọn khi các tin nhắn được ghi vào đĩa.

Nguồn

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.