Redis Pub/Sub یک سیستم پیام رسانی در زمان واقعی را اجرا می کند ، جایی که ناشران ، به یک کانال/موضوع منتشر می کنند و چندین مشتری می توانند در آن کانال/موضوع مشترک شوند.
در آخرین آموزش ما " راهنمای مبتدی برای ردیس پایگاه داده در حافظه " ما در مورد Redis به عنوان یک پایگاه داده در حافظه آموختیم. و ، چگونه این با پایگاه داده های NOSQL رقابت می کند. ما همچنین یاد گرفتیم که از کجا می توان از Redis استفاده کرد و استفاده از آن بهینه نیست. اکنون که در بالای آن دانش دانش قرار دارد ، در این آموزش در مورد Redis Pub/Sub ، چگونه کار می کند ، و بهترین استفاده از سیستم انتشار/اشتراک 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 استفاده کنیم تا یک برنامه چت در زمان واقعی ایجاد کنیم.