IBM IoT Foundation: когда использовать MQTT и когда использовать REST для отправки событий?

IBM IoT Foundation позволяет устройствам отправлять события в IBM cloud для потребления и записи. Как представляется, существует два основных механизма для обеспечения передачи событий ... MQTT и REST (HTTP POST запросы). Предполагая, что проект будет иметь датчики с прямым подключением TCP к IBM cloud через Интернет, что мы можем рассматривать как потенциальные различия между двумя технологиями? Какие факторы позволили бы нам выбрать MQTT или REST в качестве технологии для использовать? Существуют ли какие-либо существенные различия в производительности на последней миле в конце IBM, которые сказали бы, что одна технология предпочтительнее другой?

2 ответов


MQTT разработан, чтобы быть быстрым и легким протоколом обмена сообщениями, и в результате, быстрее и эффективнее в этом, чем HTTP, когда используется, чтобы сделать эквивалент. Более эффективный не только значит меньше данных по движения и больше скорости, но иногда он может значить меньше электричества также. MQTT особенно хорош там, где беспокоит пропускная способность.

MQTT, однако, нужна реализация клиента (например, Paho), которая, возможно, является более редкой вещью, чем реализация клиента HTTP, что было бы более вездесущим и, следовательно, более вероятным/легко доступным на любом данном устройстве.

существуют также соображения порта TCP/IP, где для некоторых сетевых устройств могут потребоваться порты HTTP 80 или 443 (хотя IoTF поддерживает MQTT и MQTTWS на порту 443).

также может быть идеологическая или философская причина выбора HTTP вместо MQTT( или COAP, если на то пошло), но обычно я бы сказал, что причины выбора HTTP вместо MQTT будут сетевыми связанные или поддержки клиента.

пока нет официального документа о различиях в производительности, но можно с уверенностью сказать, что MQTT будет более эффективным и быстрым, учитывая практически любой сценарий обмена сообщениями (долгоживущие соединения или adhoc и т. д.)


Я бы суммировал соображения следующим образом:

  • mqtt будет поддерживать выше во всем, и API намного проще по сравнению с REST api
  • REST API, скорее всего, гораздо более доступен на устройствах iot, но это может измениться, поскольку mqtt набирает популярность, а такие крупные игроки, как Google Cloud Platform и IBM Bluemix, поддерживают mqtt в своем сервисе iot.