Skip to main content

الاتصال بـ EMQX

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

افتراضات

  • أنت على دراية بـبروتوكول MQTT، وهو بروتوكول نقل مراسلة للنشر/الاشتراك مصمم ليكون خفيفًا للغاية.
  • أنت تستخدم EMQX أو EMQX Cloud كمحرّك لمعالجة الرسائل في الوقت الفعلي، لتشغيل تدفّق الأحداث لأجهزة إنترنت الأشياء على نطاق واسع جدًا.
  • لقد أعددت مثيل ClickHouse Cloud لتخزين بيانات الأجهزة بشكل دائم.
  • نستخدم MQTT X كأداة لاختبار عميل MQTT للاتصال بنشر EMQX Cloud ونشر بيانات MQTT. كما يمكن أيضًا استخدام طرق أخرى للاتصال بوسيط MQTT وستؤدي الغرض.

احصل على خدمة ClickHouse Cloud

خلال هذا الإعداد، قمنا بنشر مثيل ClickHouse على AWS في N. Virginia ‏(us-east -1)، كما نُشر أيضًا مثيل EMQX Cloud في المنطقة نفسها. أثناء عملية الإعداد، ستحتاج أيضًا إلى الانتباه إلى إعدادات الاتصال. في هذا الدليل العملي، اخترنا “Anywhere”، ولكن إذا طلبت موقعًا محددًا، فستحتاج إلى إضافة عنوان IP الخاص بـ NAT gateway الذي حصلت عليه من نشر EMQX Cloud إلى قائمة السماح. بعد ذلك، ستحتاج إلى حفظ اسم المستخدم وكلمة المرور لاستخدامهما لاحقًا. بعد ذلك، ستحصل على مثيل ClickHouse قيد التشغيل. انقر على “Connect” للحصول على عنوان الاتصال بالمثيل في ClickHouse Cloud. انقر على “Connect to SQL Console” لإنشاء قاعدة بيانات وجدول من أجل التكامل مع EMQX Cloud. يمكنك الرجوع إلى تعليمة SQL التالية، أو تعديل SQL وفقًا للحالة الفعلية.

أنشئ خدمة MQTT على EMQX Cloud

إنشاء وسيط MQTT مخصص على EMQX Cloud سهل للغاية ولا يتطلب سوى بضع نقرات.

أنشئ حسابًا

يوفّر EMQX Cloud فترة تجريبية مجانية لمدة 14 يومًا لكل حساب، وذلك لكلٍّ من النشر القياسي والنشر الاحترافي. ابدأ من صفحة التسجيل في EMQX Cloud، ثم انقر على ابدأ مجانًا لإنشاء حساب إذا كنت مستخدمًا جديدًا لـ EMQX Cloud.

أنشئ مجموعة MQTT

بعد تسجيل الدخول، انقر على “Cloud Console” ضمن قائمة الحساب، وسترى الزر الأخضر لإنشاء نشر جديد. في هذا الدليل العملي، سنستخدم نشر Professional لأن إصدار Pro وحده يوفّر وظيفة تكامل البيانات، التي يمكنها إرسال بيانات MQTT مباشرةً إلى ClickHouse دون سطر واحد من الشيفرة. حدّد إصدار Pro واختر المنطقة N.Virginial ثم انقر على Create Now. وخلال بضع دقائق فقط، ستحصل على وسيط MQTT مُدار بالكامل: الآن انقر على اللوحة للانتقال إلى عرض المجموعة. في لوحة المعلومات هذه، سترى النظرة العامة لوسيط MQTT الخاص بك.

إضافة بيانات اعتماد العميل

لا يتيح EMQX Cloud الاتصالات مجهولة الهوية افتراضيًا، لذا تحتاج إلى إضافة بيانات اعتماد للعميل حتى تتمكن من استخدام أداة عميل MQTT لإرسال البيانات إلى وسيط MQTT هذا. انقر على ‘Authentication & ACL’ في القائمة اليسرى، ثم انقر على ‘Authentication’ في القائمة الفرعية. بعد ذلك، انقر على زر ‘Add’ على اليمين، وأدخل اسم مستخدم وكلمة مرور لاستخدامهما لاحقًا في اتصال MQTT. سنستخدم هنا emqx وxxxxxx كاسم المستخدم وكلمة المرور. انقر على ‘Confirm’، وبذلك يصبح وسيط MQTT المُدار بالكامل جاهزًا.

تمكين NAT gateway

قبل أن نبدأ إعداد تكامل ClickHouse، نحتاج أولًا إلى تمكين NAT gateway. افتراضيًا، يتم نشر وسيط MQTT داخل VPC خاصة، لذلك لا يمكنه إرسال البيانات إلى أنظمة تابعة لجهات خارجية عبر الشبكة العامة. ارجع إلى صفحة Overview ومرّر إلى أسفل الصفحة، حيث ستجد أداة NAT gateway. انقر على زر Subscribe واتبع التعليمات. تجدر الإشارة إلى أن NAT Gateway خدمة مدفوعة إضافية، لكنها توفّر أيضًا فترة تجريبية مجانية لمدة 14 يومًا. بعد إنشائه، ستجد عنوان IP العام في الأداة. يُرجى ملاحظة أنه إذا اخترت “الاتصال من موقع محدد” أثناء إعداد ClickHouse Cloud، فستحتاج إلى إضافة عنوان IP هذا إلى قائمة السماح.

تكامل EMQX Cloud مع ClickHouse Cloud

تُستخدم EMQX Cloud Data Integrations لتهيئة القواعد الخاصة بمعالجة تدفقات رسائل EMQX والاستجابة لها، بالإضافة إلى أحداث الأجهزة. ولا توفّر Data Integrations حلًا ذا معمارية واضحة ومرنة وقابلة للتهيئة فحسب، بل تُبسّط أيضًا عملية التطوير، وتُحسّن سهولة الاستخدام، وتُقلّل درجة الاقتران بين نظام الأعمال وEMQX Cloud. كما توفّر بنية تحتية متقدمة لتخصيص الإمكانات الخاصة بـ EMQX Cloud. يوفّر EMQX Cloud أكثر من 30 تكاملًا مدمجًا مع أنظمة البيانات الشائعة، وClickHouse واحد منها.

إنشاء مورد ClickHouse

انقر على “Data Integrations” في القائمة اليمنى، ثم انقر على “View All Resources”. ستجد ClickHouse في قسم Data Persistence، أو يمكنك البحث عن ClickHouse. انقر على بطاقة ClickHouse لإنشاء مورد جديد.
  • ملاحظة: أضف ملاحظة لهذا المورد.
  • عنوان الخادم: هذا هو عنوان خدمة ClickHouse Cloud الخاصة بك، ولا تنسَ تضمين المنفذ.
  • اسم قاعدة البيانات: emqx التي أنشأناها في الخطوات أعلاه.
  • المستخدم: اسم المستخدم للاتصال بخدمة ClickHouse Cloud الخاصة بك.
  • المفتاح: كلمة المرور الخاصة بالاتصال.

أنشئ قاعدة جديدة

عند إنشاء المورد، ستظهر لك نافذة منبثقة، وسيؤدي النقر على ‘New’ إلى نقلك إلى صفحة إنشاء القاعدة. يوفّر EMQX محرك القواعد قويًا يمكنه تحويل رسائل MQTT الخام وإثراءها قبل إرسالها إلى أنظمة خارجية. إليك القاعدة المستخدمة في هذا الدليل العملي:
سيقرأ الرسائل من الموضوع temp_hum/emqx ويُثري كائن JSON بإضافة معلومات client_id وtopic وtimestamp. إذًا، هذا هو JSON الخام الذي ترسله إلى الموضوع:
يمكنك استخدام اختبار SQL لاختبار الاستعلام والاطلاع على النتائج. الآن انقر على زر “NEXT”. في هذه الخطوة، تحدد لـ EMQX Cloud كيفية إدراج البيانات المُعالجة في قاعدة بيانات ClickHouse الخاصة بك.

إضافة إجراء استجابة

إذا كان لديك مورد واحد فقط، فلن تحتاج إلى تعديل ‘Resource’ و’Action Type’. كل ما عليك هو تعيين قالب SQL. إليك المثال المستخدم في هذا الدليل العملي:
هذا قالب لإدراج البيانات في ClickHouse، ويمكنك رؤية المتغيرات المستخدمة هنا.

عرض تفاصيل القواعد

انقر على “Confirm” و”View Details”. من المفترض الآن أن يكون كل شيء مُعدًا كما ينبغي. يمكنك التأكد من أن تكامل البيانات يعمل من صفحة تفاصيل القاعدة. ستُحفَظ جميع رسائل MQTT المُرسلة إلى الموضوع temp_hum/emqx في قاعدة بيانات ClickHouse Cloud الخاصة بك.

حفظ البيانات في ClickHouse

سنحاكي بيانات درجة الحرارة والرطوبة، ثم نرسلها إلى EMQX Cloud عبر MQTT X، وبعد ذلك نستخدم EMQX Cloud Data Integrations لحفظها في ClickHouse Cloud.

نشر رسائل MQTT إلى EMQX Cloud

يمكنك استخدام أي عميل MQTT أو حزمة SDK لنشر الرسائل. في هذا الدليل العملي، سنستخدم MQTT X، وهو تطبيق سهل الاستخدام لعميل MQTT توفّره EMQ. انقر على “New Connection” في MQTTX واملأ نموذج الاتصال:
  • الاسم: اسم الاتصال. استخدم أي اسم تريده.
  • المضيف: عنوان اتصال وسيط MQTT. يمكنك العثور عليه في صفحة النظرة العامة في EMQX Cloud.
  • المنفذ: منفذ اتصال وسيط MQTT. يمكنك العثور عليه في صفحة النظرة العامة في EMQX Cloud.
  • اسم المستخدم/كلمة المرور: استخدم بيانات الاعتماد التي أنشأتها أعلاه، والتي ستكون emqx و xxxxxx في هذا الدليل العملي.
انقر على زر “Connect” في أعلى اليمين، ومن المفترض أن يتم إنشاء الاتصال. يمكنك الآن إرسال الرسائل إلى وسيط MQTT باستخدام هذه الأداة. المدخلات:
  1. اضبط تنسيق الحمولة على “JSON”.
  2. اضبط الموضوع على: temp_hum/emqx (الموضوع الذي عيّنّاه للتو في القاعدة)
  3. محتوى JSON:
انقر على زر الإرسال الموجود على اليمين. يمكنك تغيير قيمة درجة الحرارة وإرسال المزيد من البيانات إلى وسيط MQTT. يجب أن تُعالَج البيانات المُرسلة إلى EMQX Cloud بواسطة محرك القواعد وأن تُدرَج في ClickHouse Cloud تلقائيًا.

عرض مراقبة القواعد

تحقق من مراقبة القواعد وتأكد من زيادة عدد النجاحات بمقدار واحد.

تحقّق من البيانات المحفوظة

الآن حان الوقت لإلقاء نظرة على البيانات في ClickHouse Cloud. من الناحية المثالية، ستنتقل البيانات التي ترسلها باستخدام MQTTX إلى EMQX Cloud وتُحفَظ في قاعدة بيانات ClickHouse Cloud بمساعدة تكامل البيانات الأصلي. يمكنك الاتصال بـ SQL Console في لوحة ClickHouse Cloud أو استخدام أي أداة عميل لجلب البيانات من ClickHouse. في هذا الدليل العملي، استخدمنا SQL Console. من خلال تنفيذ SQL:

الخلاصة

لم تكتب أي شيفرة، وأصبحت بيانات MQTT الآن تنتقل من EMQX Cloud إلى ClickHouse Cloud. ومع EMQX Cloud وClickHouse Cloud، لن تحتاج إلى إدارة البنية التحتية، بل يمكنك التركيز فقط على تطوير تطبيقات إنترنت الأشياء، مع تخزين البيانات بأمان في ClickHouse Cloud.
آخر تعديل في ٣ يوليو ٢٠٢٦