شعار زيفيرنت

MQTT مقابل AMQP لاتصالات إنترنت الأشياء: وجهاً لوجه

التاريخ:

MQTT مقابل AMQP لاتصالات إنترنت الأشياء: وجهاً لوجه
شكل توضيحي: © IoT For All

مع النمو الهائل لإنترنت الأشياء (IoT)، تتزايد أهمية إدارة الاتصال بين الأجهزة والأنظمة. أصبح اتصال إنترنت الأشياء ممكنًا من خلال بروتوكولات قائمة انتظار الرسائل مثل MQTT وAMQP التي تسهل تبادل المعلومات بطريقة منظمة وفعالة.

هناك بروتوكولان شائعان يعملان على تشغيل إنترنت الأشياء وهما بروتوكول MQTT (نقل القياس عن بعد لخدمة وضع الرسائل في قائمة انتظار) وAMQP (بروتوكول خدمة انتظار الرسائل المتقدم). دعنا نستكشف كل بروتوكول من هذه البروتوكولات بالتفصيل ونشرح اختلافاتها الرئيسية والعوامل التي يجب مراعاتها عند الاختيار بين الاثنين.

أهمية بروتوكولات وضع الرسائل في قائمة انتظار

في إنترنت الأشياء، تحتاج الأجهزة التي تتراوح من أجهزة الاستشعار البسيطة إلى الآلات المعقدة إلى التواصل مع بعضها البعض ومع الأنظمة المركزية. تعمل هذه الأجهزة غالبًا في بيئات ذات موارد محدودة، مثل الطاقة المنخفضة أو الشبكات غير الموثوقة.

بروتوكولات قائمة انتظار الرسائل مثل MQTT، المصممة لمثل هذه البيئات، تمكن هذه الأجهزة من الاتصال بكفاءة وموثوقية.

في الأنظمة الموزعة، غالبًا ما تحتاج المكونات إلى تبادل المعلومات مع الحفاظ على الاقتران غير المحكم. توفر البروتوكولات مثل AMQP، بميزاتها القوية وقدرات التوجيه المعقدة، وسيلة موثوقة لهذا الاتصال.

تضمن هذه البروتوكولات تسليم الرسائل بشكل موثوق، ويمكن للأنظمة التوسع والتطور بشكل مستقل.

ما هو MQTT؟

MQTT، وهو اختصار لـ "نقل القياس عن بعد لخدمة وضع الرسائل في قائمة انتظار"، هو بروتوكول مراسلة خفيف الوزن للنشر/الاشتراك. تم تقديمه من قبل شركة IBM في عام 1999.

تم تصميم MQTT للأجهزة المقيدة والشبكات ذات النطاق الترددي المنخفض أو الكمون العالي أو غير الموثوقة، وهو مثالي لحالات استخدام جهاز إلى جهاز أو إنترنت الأشياء التي تتطلب بصمة رمز صغيرة.

تعمل MQTT على أساس نموذج النشر/الاشتراك. في هذا النموذج، يقوم المنتج، المعروف باسم الناشر، بإنشاء الرسائل، ويستقبلها المستهلك، المعروف باسم المشترك.

تتم إدارة التفاعل بين الناشر والمشترك بواسطة وسيط. الوسيط مسؤول عن توزيع الرسائل من الناشرين إلى المشتركين.

تكمن بساطة MQTT في الحد الأدنى من أوامر البروتوكول. يحتوي على عدد قليل فقط من الأوامر، مما يجعل من السهل تنفيذه على الأجهزة والأنظمة المختلفة.

كما تسمح مستويات جودة الخدمة الخاصة به بتأكيد تسليم الرسائل، مما يضمن عدم فقدان أي رسالة أثناء الإرسال. دعنا نستكشف MQTT بمزيد من التفاصيل.

MQTT النقل والتأطير

يمكن لـ MQTT استخدام TCP أو TLS أو WebSocket أو QUIC كطبقة النقل الخاصة بها، وإنشاء الاتصالات، وإنشاء الجلسات، ونقل الرسائل بشكل موثوق بين العملاء والوسطاء.

تتكون إطارات MQTT من رأس ثابت ثنائي البايت، ورأس متغير، وحمولة متغيرة الطول. يحتوي الرأس على معلومات مثل نوع الحزمة وجودة مستوى الخدمة والطول المتبقي ومعرف الحزمة والخصائص. تحتوي الحمولة الثنائية على الرسالة الفعلية التي يتم إرسالها.

تحدد MQTT 15 نوعًا من حزم التحكم استنادًا إلى الإطارات الثنائية في مواصفات بروتوكول الإصدار 5.0. تتضمن بعض الحزم الشائعة المستخدمة للاتصال والنشر والاشتراك CONNECT وCONACK وPUBLISH وPUBACK وSUBSCRIBE.

MQTT جودة الخدمة

تدعم MQTT ثلاث خصائص لخدمة تسليم الرسائل:

  • QoS0 "مرة واحدة على الأكثر": يتم تسليم الرسائل وفقًا لأفضل الجهود التي تبذلها بيئة التشغيل؛ يمكن أن يحدث فقدان الرسالة.
  • QoS1 "مرة واحدة على الأقل": يتم التأكد من وصول الرسائل، ولكن يمكن أن تحدث تكرارات.
  • QoS2 "مرة واحدة بالضبط": يتم التأكد من وصول الرسائل مرة واحدة بالضبط.

مزايا وعيوب MQTT

الايجابيات:

  • بساطة: أبسط تصميم للنشر والاشتراك، وأسهل في الإعداد والتطوير والإدارة.
  • خفيفة الوزن وفعالة: تحتوي رسائل MQTT على رأس من نوعين فقط مع استخدام نطاق ترددي منخفض مما يجعل البروتوكول مثاليًا للأجهزة منخفضة الطاقة وذات النطاق الترددي المنخفض.
  • التدرجية: يمكنك التوسع إلى عشرات الملايين من اتصالات وموضوعات واشتراكات MQTT.
  • تسليم رسالة موثوقة: ثلاثة مستويات لجودة الخدمة لضمان تسليم الرسائل بشكل موثوق، حتى عبر الشبكات غير الموثوقة.
  • قليل من الكمون: يتم تسليم الرسائل في الوقت الفعلي تقريبًا مع زمن وصول مكون من رقم واحد بالمللي ثانية نظرًا لنموذج النشر/الفرعي البسيط القائم على الموضوع.
  • الأمن: يدعم MQTT الاتصالات الآمنة عبر TLS/SSL أو QUIC وآليات المصادقة المتنوعة باستخدام شهادات LDAP وJWT وPSK وX.509.
  • التوافق والتكامل: يمكن دمج MQTT مع العديد من لغات البرمجة وأنظمة التشغيل ومنصات البرامج.

سلبيات:

  • تفتقر MQTT إلى قائمة انتظار التخزين وإعادة التوجيه.

ما هو AMQP؟

AMQP، بروتوكول خدمة انتظار الرسائل المتقدم، هو بروتوكول يدعم نطاقًا واسعًا من أنماط المراسلة ويوفر مجموعة قوية من الميزات. تم إنشاؤه بواسطة JP Morgan Chase في عام 2003. وهو مصمم للأنظمة التي تتطلب مستوى عالٍ من الموثوقية والوظائف.

على عكس MQTT، فإن AMQP هو بروتوكول نظير إلى نظير، مما يعني أنه يدعم الاتصال المباشر بين المنتج والمستهلك.

يستخدم AMQP نموذجًا حيث يتم إرسال الرسائل إلى التبادلات، والتي تقوم بعد ذلك بتوجيه الرسائل إلى قوائم الانتظار المناسبة بناءً على قواعد تسمى الارتباطات. ثم يقوم المستهلك باسترداد الرسالة من قائمة الانتظار.

يسمح هذا النموذج باستراتيجيات التوجيه والتوزيع المعقدة، مما يجعل AMQP مناسبًا للأنظمة الموزعة المعقدة.

تكمن قوة AMQP في مجموعة ميزاتها الواسعة. وهو يدعم مجموعة متنوعة من خصائص الرسائل وأوضاع التسليم، بما في ذلك المراسلة المستمرة، والتي تضمن عدم فقدان الرسائل حتى في حالة إعادة تشغيل الوسيط.

تبادل AMQP والارتباطات

في AMQP، يشبه التبادل وكيل نقل البريد الإلكتروني الذي يقوم بفحص البريد الإلكتروني واتخاذ القرار على أساس مفاتيح التوجيه والجداول. يتوافق مفتاح التوجيه مع بريد إلكتروني يحتوي على عناوين إلى: أو نسخة: أو نسخة مخفية: بدون معلومات الخادم (يكون التوجيه داخليًا داخل خادم AMQP). يشبه الربط الإدخال في جدول توجيه وكيل نقل البريد الإلكتروني.

يحدد AMQP أربعة أنواع من التبادلات:

  1. مباشر (من نقطة إلى نقطة): يتم توجيه الرسائل مباشرة إلى قائمة الانتظار المرتبطة بالتبادل.
  2. معجب في: يتم توجيه الرسائل إلى كل قائمة انتظار مرتبطة بالتبادل.
  3. الموضوع (نشر-اشتراك): يتم توجيه الرسائل إلى قوائم الانتظار بناءً على مفتاح التوجيه ونمط الربط بالتبادل.
  4. العناوين (النشر-الاشتراك): يتم توجيه الرسائل إلى قوائم الانتظار بناءً على مطابقة النمط لرؤوس الرسائل.

AMQP النقل والتأطير

AMQP هو بروتوكول ثنائي مبني على TCP/IP، حيث يتم إنشاء اتصال موثوق ومستمر وموجه نحو التدفق بين العميل والوسيط. يمكن فتح قنوات متعددة على اتصال مقبس واحد، مما يسمح بنقل تدفقات متعددة من البيانات في وقت واحد.

تتكون إطارات AMQP في الإصدار 1.0 من رأس ثابت 8 بايت، ورأس موسع اختياري، وحمولة ثنائية متغيرة الطول. يحتوي الرأس الثابت على معلومات حول نوع الإطار ورقم القناة وحجم الحمولة.

تحتوي الحمولة على الرسالة الفعلية التي يتم إرسالها، بالإضافة إلى أي بيانات وصفية مرتبطة بها.

مزايا وعيوب AMQP

الايجابيات:

  • قائمة انتظار التخزين وإعادة التوجيه: يدعم AMQP قائمة انتظار التخزين وإعادة التوجيه على حساب بعض الكفاءة والتعقيد الإضافي (مقارنة بـ MQTT).
  • توجيه مرن للرسائل: يوفر AMQP توجيهًا مرنًا للرسائل، بما في ذلك من نقطة إلى نقطة، والنشر والاشتراك، والتوزيع.
  • الأمن: يدعم AMQP التدابير الأمنية مثل TLS وSASL للتشفير والمصادقة.
  • النظام البيئي: يمتلك AMQP نظامًا بيئيًا كبيرًا وناضجًا لتطبيقات الخادم مفتوحة المصدر ومكتبات العملاء للغات البرمجة المختلفة.

سلبيات:

  • مركب: تقدم AMQP العديد من المفاهيم في نموذجها ويمكن أن تكون معقدة وصعبة الفهم والإعداد والإدارة.
  • وزن ثقيل: يقدم AMQP تعدد الإرسال في طبقة النقل الخاصة به باستخدام "القنوات". يحتوي كل إطار AMQP على رأس يبلغ 8 بايت.
  • التوافق: أكبر مشكلة تواجه AMQP هي أن الإصدارين 0.9.1 و1.0 مختلفان تمامًا، مما يؤدي إلى مزيد من التعقيد في مساحة الحل هذه.
  • قابلية التوسع والأداء: قد يكون لـ AMQP قابلية توسع محدودة وأداء منخفض في بعض حالات الاستخدام. ويرجع ذلك إلى بنيته المعمارية التي تفرض قدرًا أكبر من التعقيد والحمل مقارنةً بالبروتوكولات خفيفة الوزن مثل MQTT.

MQTT vs AMQP: وجهاً لوجه

يلخص الجدول التالي مقارنتنا بين AMQP وMQTT.

  AMQP MQTT
تعريف بروتوكول وضع الرسائل في قائمة انتظار المتقدمة نقل القياس عن بعد لخدمة وضع الرسائل في قائمة انتظار
Origins اخترعها جي بي مورغان تشيس في عام 2003 اخترعته شركة IBM في عام 1999
معمار EBQ (قائمة انتظار ربط التبادل) النشر/الاشتراك على أساس الموضوع
المفاهيم الأساسية ExchangesQueuesBindingsRouting Keys المواضيع الاشتراكات
إصدارات البروتوكول الرئيسية · 0.9.1 صدر في نوفمبر 2008
· 1.0 صدر في أكتوبر 2012
· 3.1.1 صدر في ديسمبر 2015
· 5.0 صدر في مارس 2019
نماذج الرسائل    
نقطة إلى نقطة ✅ (قوائم انتظار التخزين وإعادة التوجيه) دعم جزئي
نشر الاشتراك
معجب في ✅ أكثر قابلية للتطوير
مروحة داخلية
طلب الرد ✅ في الإصدار 5.0
دفع / سحب
شبكة النقل    
TCP
TLS / SSL
WebSocket
QUIC
صياغة    
هيكل الإطار تنقسم الإطارات إلى ثلاث مناطق متميزة:
رأس إطار ذو عرض ثابت،
رأس ممتد بعرض متغير،
هيكل إطار ذو عرض متغير.
تتكون حزمة التحكم MQTT مما يصل إلى ثلاثة أجزاء:
رأس ثابت
رأس متغير
الحمولة
إصلاح حجم الرأس 8 بايت 2 بايت
محتوى الحمولة ثنائي ثنائي
الحد الأقصى لحجم الحمولة 2GB 256MB
مدة التسليم    
جودة الخدمة 0: مرة واحدة على الأكثر
جودة الخدمة 1: مرة واحدة على الأقل
جودة الخدمة 2: مرة واحدة بالضبط
حماية SSL / TLS SSL / TLS

العوامل التي يجب مراعاتها عند الاختيار

عند مواجهة قرار بين MQTT وAMQP، هناك عدة عوامل يجب أخذها في الاعتبار.

التقييم بناءً على متطلبات حالة الاستخدام

يعتمد الاختيار بين MQTT وAMQP إلى حد كبير على متطلبات حالة الاستخدام. إذا كنت تتعامل مع أجهزة مقيدة أو شبكات غير موثوقة، فقد يكون MQTT بطبيعته خفيفة الوزن هو الخيار الأفضل. إذا كانت حالة الاستخدام الخاصة بك تتطلب توجيهًا معقدًا وموثوقية عالية، فسيكون AMQP أكثر ملاءمة.

التقييم على أساس هندسة النظام

تلعب بنية النظام أيضًا دورًا في القرار. إن بساطة MQTT تجعلها خيارًا جيدًا للأنظمة ذات نموذج اتصال واضح وبسيط. يعتبر AMQP، بما يتمتع به من مرونة ومجموعة ميزات قوية، أكثر ملاءمة للأنظمة المعقدة ذات احتياجات الاتصالات المتنوعة.

التقييم على أساس ظروف الشبكة

تعد ظروف الشبكة عاملاً حاسماً آخر. يعمل MQTT بشكل جيد في الشبكات ذات النطاق الترددي المنخفض أو الكمون العالي أو غير الموثوقة. من ناحية أخرى، يتطلب AMQP اتصالاً موثوقًا بالشبكة نظرًا لارتفاع حمله.

التقييم على أساس جودة الخدمة المطلوبة

توفر MQTT ثلاثة مستويات من جودة الخدمة، مما يسمح بالمرونة في ضمانات تسليم الرسائل. يضمن AMQP، من خلال رسائله المستمرة، موثوقية عالية في تسليم الرسائل.

اتخاذ قرارك

يتمتع كل من MQTT وAMQP بنقاط قوة ومناسبة لسيناريوهات مختلفة. سيساعدك فهم الاختلافات الرئيسية وتقييم متطلباتك مقابل هذه الاختلافات على اتخاذ قرار مستنير عند الاختيار. تذكر أن الاختيار الصحيح يعتمد على احتياجاتك وقيودك المحددة.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة