Redis Pub/Sub یک سیستم پیام رسانی در زمان واقعی را اجرا می کند ، جایی که ناشران ، به یک کانال/موضوع منتشر می کنند و چندین مشتری می توانند در آن کانال/موضوع مشترک شوند.

زیر میخانه Redis

در آخرین آموزش ما " راهنمای مبتدی برای ردیس پایگاه داده در حافظه " ما در مورد Redis به عنوان یک پایگاه داده در حافظه آموختیم. و ، چگونه این با پایگاه داده های NOSQL رقابت می کند. ما همچنین یاد گرفتیم که از کجا می توان از Redis استفاده کرد و استفاده از آن بهینه نیست. اکنون که در بالای آن دانش دانش قرار دارد ، در این آموزش در مورد Redis Pub/Sub ، چگونه کار می کند ، و بهترین استفاده از سیستم انتشار/اشتراک Redis چیست. بیا شروع کنیم.

الگوی انتشار/اشتراک چیست؟

انتشار/مشترک شدن یا در میخانه کوتاه/زیر یک الگوی پیام رسانی است که در آن فرستنده و گیرنده پیام ها آن پیام ها را مستقیماً تبادل نمی کنند. در عوض ، فرستنده پیام آن را به یک کانال/موضوع منتشر می کند. و ، همه کسانی که می خواهند آن پیام ها را دریافت کنند ، در کانال/موضوع مشترک می شوند. بنابراین ، این بیشتر یک توضیح فنی بود. در زندگی روزمره ما ، ما در حالی که از سیستم عامل های رسانه های اجتماعی مانند YouTube ، Twitter ، Facebook یا اینستاگرام استفاده می کنیم ، از این مدل منتشر شده استفاده می کنیم. در جایی که تولیدکنندگان محتوا محتوا را تولید می کنند و کسانی که علاقه مند هستند ، محتوا را دنبال می کنند / مشترک می شوند. بنابراین این همان کاری است که Pub/Sub الگوی دقیقاً در معماری نرم افزار نیز انجام می دهد.

میخانه/زیر چگونه کار می کند؟

در توسعه نرم افزار تأکید مجدد قابلیت استفاده مجدد بسیار زیاد است. و تمام الگوهای طراحی مبتنی بر ساخت قطعات یا ماژول های قابل استفاده مجدد است. بنابراین برای درک میخانه/SUB ابتدا باید به این ایده بپردازید که این ایده از کجا آمده است و چگونه توسعه دهندگان آن را به عنوان یک الگوی پیدا می کنند. از آنجا که معماری های نرم افزاری تکامل یافته و مبتنی بر ماژول بیشتر می شوند ، ارتباطات / پیام رسانی بیشتر بین ماژول ها و مؤلفه ها افزایش یافته است. مانند ، یک ماژول را به عنوان یک واحد پردازش فکر کنید که ورودی را می گیرد و خروجی را نیز فراهم می کند. و هر ورودی در واقع پیامی است که در آن واحد پردازش پیام دیگری را به عنوان خروجی تولید و تولید می کند. که ورودی برخی از ماژول های دیگر خواهد بود. بنابراین ، این افزایش پیام رسانی به توجه ویژه ای نیاز داشت ، زیرا برنامه های مقیاس پذیر نیاز به این وجود دارد که ماژول ها و مؤلفه ها بتوانند به طور مستقل و بدون وابستگی کار کنند. از این رو ، الگوی انتشار/مشترک شدن آمد. در بسیاری از سیستم های میخانه/فرعی ، ناشران پیام هایی را به یک کارگزار پیام واسطه یا اتوبوس رویداد ارسال می کنند و مشترکان اشتراک را با آن کارگزار ثبت می کنند و به کارگزار اجازه می دهند فیلتر را انجام دهد. این کارگزار به طور معمول یک فروشگاه و عملکرد رو به جلو را انجام می دهد تا پیام های ناشران را به مشترکان منتقل کند. علاوه بر این ، کارگزار ممکن است پیام ها را در یک صف قبل از مسیریابی در اولویت قرار دهد.

چه زمانی باید از میخانه/زیر استفاده کنید؟

برنامه های چت یک مورد استفاده کلاسیک از الگوی میخانه/زیر است. در یک برنامه گپ ، شرکت کنندگان می توانند در اتاق های چت که دارای یک میخانه/زیر موضوع مشخص شده هستند ، مشترک شوند. هنگامی که کاربر پیامی را به یک اتاق گپ ارسال می کند ، نمونه برنامه چت وی پیام را در موضوع آن اتاق چت منتشر می کند. مشترکین موضوع پیام را دریافت می کنند. سرویس صف پیام / صف پیام یا برنامه های پردازش دسته ای نیز می توانند از الگوی Pub / Sub استفاده کنند. در جایی که همه کسانی که می خواهند یک کار خاص انجام دهند ، پیام را به یک صف و پردازش که در آن صف مشترک شده اند ، منتشر می کنند ، پیام را برای پردازش کار دریافت می کنند. بیایید در مورد برخی از مزایای الگوی میخانه/زیر بحث کنیم

  • اتصال سست بین اجزای سیستم
  • نمای بهتر از گردش کار در سطح سیستم
  • ادغام بهتر و سریعتر را امکان پذیر می کند
  • مقیاس پذیری نرم تر را تضمین می کند
  • قابلیت اطمینان مداوم تضمین شده
  • خاصیت ارتجاعی را ایجاد می کند
  • مدولار سازی نرم افزار
  • توسعه نرم افزار آگنوستیک زبان
  • وضوح در منطق تجارت
  • پاسخگویی را بهبود می بخشد

نحوه استفاده از Redis Pub/Sub

برای نصب Redis ، می توانید به [آخرین آموزش] من 1 مراجعه کنید. این مثال توضیح می دهد که چگونه ناشر و مفهوم مشترک کار می کنند. در مثال زیر ، یک مشتری در کانال به نام “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" 

نتیجه

در این آموزش ، ما در مورد الگوی طراحی انتشار/مشترک آموختیم. و چگونگی عملکرد Redis Pub/Sub را بررسی کرد. ما همچنین بررسی کردیم که بهترین موارد استفاده از پیام رسانی Redis Pub/Sub ، در زمان واقعی چیست. در آموزش آینده من ، ما Redis را بیشتر بررسی خواهیم کرد و توضیح می دهیم که چگونه می توانیم از Redis Pub/Sub با Node.js استفاده کنیم تا یک برنامه چت در زمان واقعی ایجاد کنیم.