MQTT प्रोटोकॉल का उपयोग कब और क्यों करना है?


34

मैं एक उपकरण विकसित कर रहा हूं जो तापमान, आर्द्रता और द्रव्यमान को मापता है। वर्तमान में यह दूरस्थ सर्वर पर डेटा अपलोड करने के लिए HTTPS का उपयोग करता है। अब मुझे पता है कि एमक्यूटीटी नामक एक प्रोटोकॉल है, जिसे "इंटरनेट ऑफ थिंग्स" का प्रोटोकॉल माना जाता है।

किस स्थिति में और मुझे HTTPS से MQTT पर स्विच क्यों करना चाहिए?

जवाबों:


32

MQTT उपकरणों के बीच एक "दूत" है:

  • आपका उपकरण समय पर मापता है कि X का तापमान T है
  • यह MQTT ब्रोकर को (स्वयं या zwave हब के माध्यम से) जोड़ता है
  • यह विषय के साथ एक संदेश बनाता है /domotics/myplace/mydevice/temperature
  • संदेश के भीतर यह सिर्फ डालता है X("पेलोड" के रूप में)

आपके घर में कहीं और:

  • आपका रास्पबेरी पाई MQTT ब्रोकर से जुड़ा है (यह खुद MQTT उदाहरण हो सकता है)
  • यह /domotics/+/+/temperatureइस विषय प्रारूप का उपयोग करने वाले सभी उपकरणों से सभी तापमान की जानकारी प्राप्त करने के लिए विषय की सदस्यता लेता है । MQTT विषय वाइल्डकार्ड ( और ) पर अधिक जानकारी के लिए MQTT कल्पना देखें ।+#
  • यह पेलोड के साथ एक संदेश प्राप्त करेगा Xऔर जो चाहे कर सकता है!

आपके घर में कहीं और:

  • आपका कंप्यूटर MQTT ब्रोकर से जुड़ा है और /domotics/myplace/mydevice/#आपके डिवाइस से सभी जानकारी प्राप्त करने और उसे लॉग इन करने के लिए विषय की सदस्यता लेता है
  • यह पेलोड के साथ एक संदेश प्राप्त करेगा Xऔर जो चाहे कर सकता है!

MQTT अपने सर्वर के चारों ओर वेब सेवाओं और सॉकेट्स से बचने के लिए बहुत उपयोगी है। नोड-रेड एमक्यूटीटी का उपयोग करता है और डोमिन्ट्ज को सिग्नल प्राप्त करने inऔर सेट करने के लिए कॉन्फ़िगर किया जा सकता outहै।

मैं कंप्यूटर पर स्विच करने के लिए व्यक्तिगत रूप से अपने घर पर MQTT का उपयोग करता हूं: /house/computers/mycomputerपेलोड:0


अच्छी बात यह है कि मुझे सॉकेट और अन्य वेब सेवाओं से परेशान नहीं होना है।
बेंस कौलिक्स

क्या आप सुरक्षा पहलुओं पर टिप्पणी कर सकते हैं? क्या ट्रैफिक प्लेनटेक्स्ट है?
मगग

1
एक अन्य जवाब में कहा गया है कि एमक्यूटीटी टीएलएस का समर्थन करता है; iot.stackexchange.com/a/69/39
Goufalite

20

MQ टेलीमेट्री ट्रांसपोर्ट प्रोटोकॉल जिसे MQTT के रूप में जाना जाता है, उन उपकरणों के लिए डिज़ाइन किया गया है जो कम बिजली और कम बैंडविड्थ पर चलते हैं। यह एक लाइटवेट पब्लिश / सब्सक्राइब मैसेजिंग प्रोटोकॉल है जिसका अर्थ है कि कोई भी अन्य डिवाइस किसी विशेष विषय की सदस्यता ले सकता है।

HTTP / HTTPS क्लाइंट-सर्वर कंप्यूटिंग के लिए अनुरोध-प्रतिक्रिया प्रोटोकॉल के रूप में डिज़ाइन किया गया है जो कभी बिजली के उपयोग के बारे में परेशान नहीं करता है और इसमें बहुत अधिक डेटा ओवरहेड होता है।

MQTT का उपयोग करें यदि:

  • आपके द्वारा उपयोग किया जा रहा डिवाइस बैटरी सेल पर चल रहा है और आप प्रतिस्थापित नहीं करना चाहते हैं कि हर x नंबर दिन (MQTT बैटरी उपयोग के लिए अनुकूलित है जबकि HTTP / S नहीं है)
  • तेजी से प्रतिक्रिया चाहिए
  • पब / सब मैकेनिज्म होना चाहिए (यदि आप कई क्लाइंट्स को संदेश भेजना चाहते हैं)
  • क्यूओएस के विभिन्न स्तरों के साथ मज़बूती से डेटा भेजने की आवश्यकता है

क्या MQTT HTTPS जितनी सुरक्षा प्रदान करता है?

MQTT परिवहन प्रोटोकॉल के रूप में टीसीपी पर निर्भर करता है, जिसका अर्थ है कि डिफ़ॉल्ट रूप से कनेक्शन एक एन्क्रिप्टेड संचार का उपयोग नहीं करता है। संपूर्ण MQTT संचार को एन्क्रिप्ट करने के लिए, अधिकांश MQTT ब्रोकर - जैसे HiveMQ - सादे टीसीपी के बजाय TLS का उपयोग करने की अनुमति देते हैं।

रेफरी: HiveMQ


1
क्या MQTT HTTPS जितनी सुरक्षा प्रदान करता है?
बेंस कौलिक्स

2
यह SSL / TLS का उपयोग कर सकता है इसलिए यह HTTPS जितना सुरक्षित होना चाहिए।
घनिमा 18

1
जैसा कि @Ghanima ने कहा, मैंने MQTT को सुरक्षित रखने के बारे में बात करने के लिए संदर्भ लेख के साथ उत्तर को अपडेट किया।
bravokeyl 19

11

MQTT (संदेश कतार टेलीमेटरी ट्रांसपोर्ट) प्रस्तावित आवेदन के लिए अच्छी तरह से अनुकूल प्रतीत होता है।

यह बैंडविड्थ के संबंध में हल्का है (केवल 2 बाइट्स के हेडर के साथ सबसे छोटा पैकेट आकार) और क्लाइंट कोड पदचिह्न (इसे ESP8266, विशिष्ट IoT क्लाइंट जैसे पतले क्लाइंट पर चलने के लिए सक्षम करता है)। सेंसर की तरह ऑफ-ग्रिड बैटरी चालित ग्राहकों के लिए लंबे समय तक संचारित डेटा बैटरी जीवन के लिए फायदेमंद है।

MQTT भी सरल तरीके ( क्रिया ) प्रदान करता है जो IoT कार्यों को अच्छी तरह से सूट करता है, जैसे टिकाऊ सदस्यता जो अप्रत्याशित क्लाइंट डिस्कनेक्ट के बाद कनेक्शन को पुनर्प्राप्त करता है। HTTP / HTTPS की तुलना में यह पैकेज से डेटा निकालने के लिए सरल है (कोई पार्सर आवश्यक नहीं)।


5

यहाँ मैंने एक लेख लिखा है जो हमारी परियोजना में संचार व्यवस्था में विकास और विकास को दर्शाता है। यह माइक्रो-सेवाओं के बारे में है, लेकिन आप किसी भी तरह के टेलीमेट्री डेटा को इकट्ठा करने और प्रकाशित करने के लिए किसी भी सेंसर को अपनी नौकरी के साथ माइक्रो-सेवा मान सकते हैं।

इसलिए सबसे महत्वपूर्ण निष्कर्ष यह है कि एमक्यूटीटी का उपयोग करना बेहतर होता है जब आपको बस कहीं घटना भेजने की आवश्यकता होती है और आप प्राप्तकर्ता के बारे में कुछ नहीं जानते हैं। और जब आप प्राप्तकर्ता के बारे में कुछ जानते हैं और कुछ भी प्रतिक्रिया की आवश्यकता होती है, तो HTTP (आमतौर पर REST) ​​का उपयोग करना बेहतर होता है - जैसे भी हो, कमांड के मामले में।

ट्रैफिक, सीपीयू, मेमोरी और ऊर्जा खपत के दृष्टिकोण से MQTT और HTTP मूल रूप से समान हैं।


2

आपके उद्धरण के बारे में MQTT "इंटरनेट ऑफ थिंग्स का प्रोटोकॉल" है:

हाँ, इस प्रोटोकॉल का उपयोग करने वाले डेवलपर्स की एक बड़ी मात्रा है (देखें IoT डेवलपर सर्वेक्षण 2018) लेकिन CoAP (यह HTTP HTTP के लिए समायोजित है, UDP पर आधारित है) HTTP के लिए एक विकल्प प्रदान करता है यदि आप एक हल्के अनुरोध / प्रतिक्रिया कार्यक्षमता का उपयोग करना चाहते हैं आपका आवेदन।

दूसरी ओर MQTT एक बिल्ट-इन पब्लिश / सब्सक्राइब लॉजिक प्रदान करता है, जो इसे स्केलिंग के लिए बहुत अच्छा बनाता है (आप अधिक से अधिक डिवाइसों के लिए अधिक से अधिक गेटवे का उपयोग कर सकते हैं)। एक यूडीपी विकल्प भी है (जैसे कूपर से HTTP) जिसे MQTT-SN (सेंसर नेटवर्क के लिए MQTT ) कहा जाता है । यह CoAP से भी छोटा ओवरहेड प्रदान करता है, लेकिन R / R का उपयोग नहीं करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.