Sử dụng một MQTT Broker? Đây là lý do tại sao bạn cần suy nghĩ về khả năng mở rộng

MQTT broker mở rộng theo phương pháp parabol khi bạn thêm thiết bị, vì vậy bạn nên luôn ghi nhớ điều này khi bạn mở rộng bất kỳ nền tảng IoT nào dựa trên MQTT.

0

Có một số tùy chọn để phát triển một message broker với các chức năng song công đầy đủ và các tính năng hỗ trợ khác nhau. Một số tùy chọn này là việc sử dụng ổ cắm TCP thô, ổ cắm UDP thô, AMQP và CoAP. Hầu hết các lựa chọn thay thế này có nhiều hạn chế và biến chứng hơn lợi ích, đặc biệt là khi so sánh với MQTT. Đây là nơi MQTT trở thành sự lựa chọn phù hợp, hiệu quả và thuận tiện nhất, đặc biệt là khi xây dựng nền tảng Internet of Things của riêng chúng ta.

Hãy nhớ rằng tất cả các giao thức này có thể cùng tồn tại và chúng ta có thể triển khai chúng trên cùng một thể hiện trên đám mây, nếu cần. Điều này có nghĩa là, trong tương lai, nếu bạn quyết định sử dụng AMQP cũng như MQTT, thì có thể tích hợp một số hoặc tất cả chúng. Quan trọng hơn, chúng ta có thể liên kết các kênh này với một chương trình bổ sung để có một giao tiếp liền mạch từ phối cảnh ứng dụng và thiết bị.

Sử dụng một MQTT Broker

Về cơ bản, MQTT là một giao thức không đồng bộ và do đó cho phép giao tiếp song công với một gánh nặng nhẹ trên các hệ thống. Nó cho phép các hệ thống chạy trên băng thông thấp và năng lượng thấp. Ngược lại, HTTP và các giao thức tương tự đòi hỏi băng thông và sức mạnh tương đối cao và về bản chất là đáp ứng yêu cầu, điều đó có nghĩa là máy khách phải luôn bắt đầu giao tiếp.

Ở những nơi bạn muốn một trong hai bên (máy chủ hoặc máy khách) bắt đầu liên lạc, MQTT là lựa chọn tốt nhất. Hơn nữa, nếu các hệ thống cần chạy với mức tiêu thụ dữ liệu thấp, đặc biệt là trên pin, trong một thời gian dài, bạn nên thận trọng khi sử dụng MQTT. Nếu thiết bị cần gửi hoặc nhận dữ liệu thường xuyên và ngẫu nhiên, thì MQTT cũng có ý nghĩa vì nó làm giảm chi phí HTTP đáng kể.

Nếu băng thông và sức mạnh không phải là mối quan tâm, thì HTTP có thể là lựa chọn tốt hơn. Nó cũng có thể là một lựa chọn tốt hơn khi tần số gửi hoặc nhận dữ liệu không cao, có thể chặn tài nguyên sớm hơn trong quy trình.

Tại sao và khi nào nên sử dụng MQTT cho IoT Messaging

Trong một ứng dụng yêu cầu kiểm soát hoặc giám sát trực tiếp, MQTT là một lựa chọn rõ ràng vì nó cung cấp khả năng giao tiếp song công, hai chiều với ít chi phí nhất.

Bạn phải chú ý đến thực tế là khối lượng công việc của hệ thống dựa trên MQTT có thể tăng theo chiều ngang, điều đó có nghĩa là với mỗi thiết bị được thêm vào mạng nói MQTT có tổng số n thiết bị, tải trên hệ thống sẽ trở thành n bình phương n*n. Hình dưới đây giải thích khái niệm này bằng đồ họa.

Image Credit: Anand Tamboli

Mức độ mở rộng của nền tảng dựa trên MQTT tăng theo n bình phương. Ví dụ: hãy để Giả sử một kịch bản cực đoan trong đó có hai khách hàng trong đó mỗi khách hàng đăng ký tất cả các chủ đề có thể. Khi một khách hàng xuất bản một tin nhắn, broker cần nhận một tin nhắn và một khách hàng khác cũng cần nhận được tin nhắn. Điều này có nghĩa là một tin nhắn được gửi có thể dẫn đến hai lần truyền. Điều tương tự cũng xảy ra với các máy khách khác, làm cho nó có tổng cộng bốn tin nhắn cho một hệ thống hai máy khách.

Đối với hệ thống ba khách hàng, tổng số này trở thành chín tin nhắn, (tức là ba tin nhắn cho mỗi khách hàng). Chỉ cần kết nối 10 thiết bị có nghĩa là nhà môi giới tin nhắn sẽ có khả năng xử lý 10 * 10 (tức là 100 tin nhắn, v.v.).

Khi số lượng khách hàng MQTT bắt đầu tăng lên, tải trên message broker, toàn bộ hệ thống và nền tảng sẽ tăng gần như theo cấp số nhân.

Luôn ghi nhớ điều này khi bạn mở rộng bất kỳ nền tảng IoT nào mà dựa trên MQTT trong các giai đoạn sau hoặc thêm nhiều thiết bị vào đó.

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây