خب همانطور که میدانید سرویس ها و اپلیکیشن ها مانند ما انسان ها با یکدیگر صحبت می کنند و در دنیای الکترونیک این ارتباط را Message Broker ها برای سرویس ها و اپلیکیشن ها فراهم می کنند.
یکی از این Message Broker ها که محبوب دل برنامه نویس های دات نتی هم هست Rabbit MQ می باشد. راحتی در پیاده سازی ، امکانات فراوان جهت مدیریت پیام ها ( ایجاد صف ، نگهداری پیام ها بر روی دیسک و ... ) و همچنین محیط گرافیکی مدیریتی از جمله امکاناتی که این Message Broker در اختیار ما قرار میده. با زبان Erlang توسعه داده شده است و از پرتکل های مختلفی پشتیبانی می کند که ما در اینجا با پرتکل AMQP سرکار داریم. همچنین پیام بصورت باینری بین سرویس ها جا به جا می شود.
اما پرتکل AMQP ;
برای اینکه ما با این پرتکل کار کنیم و بتونیم بین سیستم هامون ارتباط ایجاد کنیم و پیام رسانی را انجام بدیم نیازمند این هستیم که Entity های مهم سیستم بشناسیم.
1- Producer : همون اپلیکیشن یا سرویسی هست که پیام را ایجاد می کند.
2- Exchange : عملا اداره پست ما هست ، وظیفه اش اینه که بر اساس نوعی که داره و کلید ارتباطی پیام را به صف مربوطه برسونه و انواع مختلفی داره که در ادامه اشاره خواهیم کرد..
3- Queue : صف ، پیام ها از طریق Exchange به یک یا چند صف ارسال می شوند و صف ها بر اساس کانفیگ یا تنظیماتی که براشون در نظر گرفتیم با متصل شدن به استفاده کننده یا همون Consumer پیام را بدستشون میرسونن
4- Consumer : استفاده کننده پیام هست که پیام را از صف دریافت می کنه و میتونه در جواب دریافت پیام پاسخی را نیز به همون صف و تولید کننده پیام برسونه
در لینک زیر نمونه هایی از RabbitMQ پیاده سازی شده که در ادامه مقالات بیشتر شرح میدیم و شما در پایان می بینید که این سرویس جذاب چطور به کمکتون میاد تا بتونید ارتباط پیام رسانی میان سرویس هاتون را پیاده سازی کنید:
https://github.com/incodity-ir/RabbitMQSamples
در آخر ممنون از وقتی که گذاشتین و مطالعه کردین :)