Message broker سرویسی است که با دریافت، ذخیره و تحویل پیام ها به عنوان واسطه بین برنامه ها یا سرویس های مختلف عمل می کند. Message broker یک جزء کلیدی در سیستم پیام رسانی است که ارتباط ناهمزمان(asynchronous) را بین اجزای مختلف یک سیستم توزیع شده امکان پذیر می کند. هنگامی که پیامی از فرستنده(که میتواند برنامه کلاینت یا سایر سرویس ها باشد) ارسال می شود، ابتدا توسط Message broker دریافت شده و سپس در یک صف قرار میگیرد. گیرنده مورد نظر می تواند به این پیام ها دسترسی داشته باشد و آن ها را پردازش کند.
با توجه به آنکه گیرنده پیام ها را به نوبت از صف دریافت کرده و آن هارا پردازش میکند، فشار لحظه ای بر سیستم اعمال نخواهد شد و امکان پردازش حجم بالایی از پیام ها فراهم میشود.
بیشتر Message broker ها برای پیاده سازی پیامرسانی ناهمزمان(asynchronous) طراحی شدهاند که فرستنده میتواند بدون انتظار برای پاسخ از طرف گیرنده به ارسال پیام ادامه دهد. پیامرسانی ناهمزمان چندین مزیت از جمله بهبود عملکرد سیستم، کاهش تأخیر و مقیاسپذیری بهتر را به همراه دارد.
همچنین، برخی از Message broker ها ممکن است از پیامرسانی همزمان(synchronous) پشتیبانی کنند، که فرستنده قبل از ادامه کار بعدی منتظر پاسخ از گیرنده میماند. پیام رسانی همزمان می تواند در سناریوهای خاصی کاربرد داشته باشد، مانند زمانی که یک الگوی درخواست/پاسخ (request/response) مورد نیاز است.
به طور کلی، Message broker ها به گونهای طراحی شدهاند که انعطافپذیر باشند و از طیف وسیعی از الگوهای پیامرسانی، از جمله پیامهای ناهمزمان و همزمان پشتیبانی کنند.
برخی از ویژگی های کلیدی Message broker ها عبارتند از:
در ادامه چند Message broker محبوب همراه با توضیح مختصری از هر یک قرار گرفته شده است:
انتخاب واسطه پیام به نیازهای خاص سیستم و مورد استفاده بستگی دارد. با توجه به نیاز های سیستم و ساختار معماری نرم افزار، میتوان از یکی از این سرویس ها استفاده کرد.
به طور کلی، Message broker ها یک مکانیسم قدرتمند و انعطاف پذیر برای یکپارچه سازی و ایجاد ارتباط بین سیستم ها ارائه می دهند و می توانند به شما در ساختن سیستم های مقیاس پذیر و قابل اعتماد کمک کنند. اگر درحال پیاده سازی یک نرم افزار با بکارگیری از معماری میکروسرویس باشید، حتما میدانید که بخش زیادی از ارتباطات بین سرویس ها از طریق Message broker ها انجام میشود. با بکارگیری صحیح از این ابزار ها، امکان مقیاس پذیری در ابعاد گسترده فراهم میشود.
درصورتی که میخواهید با معماری میکروسرویس بیشتر آشنا شوید، مطلب "میکروسرویس چیست و چرا باید از میکروسرویس استفاده کرد؟" اطلاعات مناسبی در اختیار شما قرار میدهد.
من محمدرضا باباخانی هستم، توسعه دهنده نرم افزار. در اینجا تجربیات، نظرات و پیشنهادات خودم رو درباره تکنولوژی مینویسم. امیدوارم مطالبی که مینویسم بدردتون بخوره.
ثبت دیدگاه