Redis Pub/Sub ينفذ نظام مراسلة في الوقت الفعلي ، حيث ينشر الناشرون ، إلى قناة/موضوع ، ويمكن للعديد من العملاء الاشتراك في تلك القناة/الموضوع.

Redis Pub Sub

في برنامجنا التعليمي الأخير " دليل المبتدئين إلى قاعدة بيانات Redis داخل الذاكرة " لقد تعلمنا عن Redis كقاعدة بيانات في الذاكرة. وكيف يتنافس هذا مع قواعد بيانات NOSQL. لقد تعلمنا أيضًا مكان استخدام redis وأين استخدامه ليس الأمثل. الآن بناء على قاعدة المعرفة هذه ، في هذا البرنامج التعليمي ، سنتعرف على Redis Pub/Sub ، وكيف يعمل ، وما هو أفضل استخدام لنظام النشر/الاشتراك في Redis. هيا بنا نبدأ.

ما هو نمط النشر/الاشتراك؟

النشر/الاشتراك أو في حانة/sub قصيرة هو نمط مراسلة حيث لا يتبادل المرسل والمستقبل للرسائل هذه الرسائل مباشرة. بدلاً من ذلك ، ينشر مرسل الرسالة إلى قناة/موضوع. وجميع الذين يرغبون في تلقي هذه الرسائل سيشتركون في القناة/الموضوع. لذلك ، كان هذا أكثر من التفسير الفني. في حياتنا اليومية ، نستخدم نموذج النشر هذا في كثير من الأحيان أثناء استخدام منصات الوسائط الاجتماعية مثل YouTube أو Twitter أو Facebook أو Instagram. عندما ينتج منتجو المحتوى المحتوى وسيتبع أولئك المهتمين / يشتركون في المحتوى. لذلك هذا هو بالضبط ما يفعله النمط/الفرع في بنية البرمجيات أيضًا.

كيف تعمل الحانة/الفرعية؟

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

متى يجب أن تستخدم Pub/Sub؟

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

  • اقتران فضفاض بين مكونات النظام
  • عرض أفضل لسير العمل على مستوى النظام
  • يمكّن التكامل بشكل أفضل وأسرع
  • يضمن قابلية التوسع أكثر سلاسة
  • مضمون موثوقية ثابتة
  • يبني المرونة
  • modularization البرمجيات
  • تطوير البرمجيات اللغوية اللغوية
  • الوضوح في منطق العمل
  • يحسن الاستجابة

كيفية استخدام Redis Pub/Sub

لتركيب redis ، يمكنك الرجوع إلى آخر تعليمي. يشرح هذا المثال كيف يعمل الناشر والمشترك. في المثال التالي ، يشترك أحد العميل في قناة تسمى “redischat”.

redis 127.0.0.1:6379> SUBSCRIBE redisChat  
Reading messages... (press Ctrl-C to quit) 
1) "subscribe" 
2) "redisChat" 
3) (integer) 1 

الآن ، ينشر عميلين الرسائل على نفس القناة المسماة “redischat” والعميل المذكور أعلاه يتلقى الرسائل.

redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great"  
(integer) 1  
redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis"  
(integer) 1   
1) "message" 
2) "redisChat" 
3) "Redis is a great" 
1) "message" 
2) "redisChat" 
3) "Learn redis" 

خاتمة

في هذا البرنامج التعليمي ، تعلمنا نمط تصميم النشر/الاشتراك. واستكشف كيف تعمل حانة/Sub. لقد اكتشفنا أيضًا ما هي أفضل حالات الاستخدام لـ Redis Pub/Sub ، المراسلة في الوقت الفعلي. في البرنامج التعليمي القادم ، سنستكشف Redis بشكل أكبر ونشرح كيف يمكننا استخدام Redis Pub/Sub مع Node.js لإنشاء تطبيق دردشة في الوقت الفعلي.