Message Broker چیست و چرا باید از آن استفاده کنیم؟

Message Broker چیست و چرا باید از آن استفاده کنیم؟

مدت مطالعه : 4 دقیقه

10 اردیبهشت 1402

Message broker سرویسی است که با دریافت، ذخیره و تحویل پیام ها به عنوان واسطه بین برنامه ها یا سرویس های مختلف عمل می کند. Message broker یک جزء کلیدی در سیستم پیام رسانی است که ارتباط ناهمزمان(asynchronous) را بین اجزای مختلف یک سیستم توزیع شده امکان پذیر می کند. هنگامی که پیامی از فرستنده(که میتواند برنامه کلاینت یا سایر سرویس ها باشد) ارسال می شود، ابتدا توسط Message broker دریافت شده و سپس در یک صف قرار می‌گیرد. گیرنده مورد نظر می تواند به این پیام ها دسترسی داشته باشد و آن ها را پردازش کند.

با توجه به آنکه گیرنده پیام ها را به نوبت از صف دریافت کرده و آن هارا پردازش می‌کند، فشار لحظه ای بر سیستم اعمال نخواهد شد و امکان پردازش حجم بالایی از پیام ها فراهم می‌شود.

بیشتر Message broker ها برای پیاده سازی پیام‌رسانی ناهمزمان(asynchronous) طراحی شده‌اند که فرستنده می‌تواند بدون انتظار برای پاسخ از طرف گیرنده به ارسال پیام ادامه دهد. پیام‌رسانی ناهمزمان چندین مزیت از جمله بهبود عملکرد سیستم، کاهش تأخیر و مقیاس‌پذیری بهتر را به همراه دارد.

همچنین، برخی از Message broker ها ممکن است از پیام‌رسانی همزمان(synchronous) پشتیبانی کنند، که فرستنده قبل از ادامه کار بعدی منتظر پاسخ از گیرنده می‌ماند. پیام رسانی همزمان می تواند در سناریوهای خاصی کاربرد داشته باشد، مانند زمانی که یک الگوی درخواست/پاسخ (request/response) مورد نیاز است.

به طور کلی، Message broker ها به گونه‌ای طراحی شده‌اند که انعطاف‌پذیر باشند و از طیف وسیعی از الگوهای پیام‌رسانی، از جمله پیام‌های ناهمزمان و همزمان پشتیبانی کنند. 

 

ویژگی های یک Message Broker

برخی از ویژگی های کلیدی Message broker ها عبارتند از:

  1. مسیریابی: آن ها می توانند پیام ها را بر اساس معیارهای مختلف مانند محتوای پیام، فرستنده، گیرنده و غیره به مقصد مناسب هدایت کنند.
  2. تبدیل: آن ها می توانند پیام ها را از یک فرمت به فرمت دیگر تبدیل کنند و امکان همکاری بین برنامه ها و سیستم های مختلف را فراهم کنند.
  3. فیلتر کردن: آن ها می توانند پیام ها را بر اساس معیارهای مختلفی مانند محتوای پیام، فرستنده، گیرنده و غیره فیلتر کنند.
  4. پایداری: آن ها می توانند پیام ها را به شیوه ای بادوام و پایدار ذخیره کنند و اطمینان حاصل کنند که پیام ها در صورت خرابی یا خرابی سیستم از بین نمی روند.
  5. امنیت: آن ها می توانند مکانیسم های احراز هویت و مجوز را برای اطمینان از اینکه فقط کاربران و سیستم های مجاز می توانند پیام ارسال و دریافت کنند، ارائه دهند.

برخی از Message Broker های محبوب

در ادامه چند Message broker محبوب همراه با توضیح مختصری از هر یک قرار گرفته شده است:

  • Apache Kafka: کافکا یک پلتفرم استریم توزیع شده است که برای مدیریت حجم زیادی از داده ها بصورت real-time طراحی شده است. کافکا یک مکانیسم با کارایی بالا و با تأخیر کم برای انتشار و اشتراک فراهم می کند. کافکا به طور گسترده در صنایعی مانند امور مالی، تجارت الکترونیک و رسانه های اجتماعی استفاده می شود.
  • RabbitMQ:ـ RabbitMQ یک واسطه پیام است که به برنامه ها اجازه می دهد با ارسال و دریافت پیام ها به روشی قابل اعتماد و مقیاس پذیر با یکدیگر ارتباط برقرار کنند. می توان از آن برای کارهایی مانند زمان بندی وظایف، معماری رویداد محور، تعادل بار و موارد دیگر استفاده کرد.
  • Amazon Simple Queue Service (SQS):ـ SQS  یک سرویس صف پیام کاملاً مدیریت شده است که جداسازی و مقیاس پذیری میکروسرویس ها و سیستم های توزیع شده را امکان پذیر می کند.
  • Azure Service Bus:ـ  Azure Service Bus یک واسطه پیام ابری(cloud-based) است که پیام رسانی مطمئن و ایمن را بین برنامه ها و سرویس ها ارائه می دهد.
  • IBM MQ:  که قبلا با نام IBM WebSphere MQ شناخته می‌شد، یک واسط پیام‌رسانی است که به برنامه‌ها اجازه می‌دهد از طریق پلتفرم‌های مختلف با یکدیگر ارتباط برقرار کنند. IBM MQ برنامه‌ها و سیستم‌های مختلف را قادر می‌سازد تا پیام‌ها یا داده‌ها را بدون در نظر گرفتن موقعیت مکانی یا زبان برنامه‌نویسی به شیوه‌ای مطمئن و ایمن مبادله کنند.

انتخاب واسطه پیام به نیازهای خاص سیستم و مورد استفاده بستگی دارد. با توجه به نیاز های سیستم و ساختار معماری نرم افزار، میتوان از یکی از این سرویس ها استفاده کرد.

به طور کلی، Message broker ها یک مکانیسم قدرتمند و انعطاف پذیر برای یکپارچه سازی و ایجاد ارتباط بین سیستم ها ارائه می دهند و می توانند به شما در ساختن سیستم های مقیاس پذیر و قابل اعتماد کمک کنند. اگر درحال پیاده سازی یک نرم افزار با بکارگیری از معماری میکروسرویس باشید، حتما می‌دانید که بخش زیادی از ارتباطات بین سرویس ها از طریق Message broker ها انجام می‌شود. با بکارگیری صحیح از این ابزار ها، امکان مقیاس پذیری در ابعاد گسترده فراهم می‌شود.

درصورتی که میخواهید با معماری میکروسرویس بیشتر آشنا شوید، مطلب "میکروسرویس چیست و چرا باید از میکروسرویس استفاده کرد؟" اطلاعات مناسبی در اختیار شما قرار می‌دهد.

  • اشتراک گذاری:
محمدرضا باباخانی
محمدرضا باباخانی

من محمدرضا باباخانی هستم، توسعه دهنده نرم افزار. در اینجا تجربیات، نظرات و پیشنهادات خودم رو درباره تکنولوژی مینویسم. امیدوارم مطالبی که می‌نویسم بدردتون بخوره.

آخرین مطالب

سرویس مش؛ ساده سازی ارتباطات میکروسرویس و افزایش رؤیت پذیری

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

اهمیت محاسبات لبه یا Edge Computing

ا توجه به سرعت تحول فناوری، یکی از مفاهیمی که توجه زیادی را به خود جلب کرده و نحوه تعامل ما با سیستم های دیجیتال را تغییر می دهد، محاسبات لبه (Edge Computing) است.

معماری رویداد محور چیست؟

معماری رویداد محور (EDA) یک الگوی طراحی نرم افزار است که در توسعه نرم افزار های مدرن به طور چشمگیری محبوب شده است. در این معماری، جریان داده ها با وقوع رویدادها تعیین می شود. بر خلاف سیستم های متمرکز سنتی که دائماً در حال بررسی وضعیت جدید هستند. معماری رویداد محور به ویژه برای سیستم هایی مفید است که به پردازش حجم زیادی از داده ها بصورت بلادرنگ(real-time) نیاز دارند.

برچسب های مرتبط

ثبت دیدگاه