RabbitMQ چیست و چرا باید یادش بگیرم؟


#1

سلام و درود
در رابطه با این تیپ تکنولوژی ها مثل RabbitMQ - ZeroMQ سوال داشتم و اینکه چرا نیاز هست یه دولوپر نرم افزاری یادشون بگیره؟


#2

به این نوع نرم افزار message broker گفته میشه ودر ساخت سیستم های async بسیار مفید هستند
فرض کنید شما یک فروشگاه دارید که وقتی کاربر خریدشو تموم میکنه میخواهید رسید به او ایمیل بشه و به علاوه به سیستم حسابداری هم این اطلاعات فرستاده بشه
بدون وجود message broker باید به همه این سیستم ها پیام فرستاد ولی با وجود rabbitmq میشه این دو به یک کانال گوش بدن و شما فقط پیام بفرستی به کانال

کارهای زیاد دیگه ای هم میشه با rabbitmq کرد مثلا routing و queuing
یادگیری استفاده درست از پیام ها برای هر ارشیتکت سیستم های بزرگ ضروریه به نظرم


#3

بسیار عالی. چه مثال خوبی هم زدین. تفاوتی بین Kafka و Zeromq تو این بحث Message Broker هست ؟


#4

ممنون سام عزیز یک سوال برای من پیش اومده: این در زمانی هست که سیستم به صورت میکروسرویس باشد ؟ یا بر روی چند سرور قرار گرفته باشد ؟


#5

کافکا از نظر ساختار کاملا متفاوت با rabbit
در کافکا پیام ها ناشر در topic و partition ذخیره میشوند و هر پیام یک شماره که بهش offset گفته میشه داره
هر سیستم که به topic گوش میده میتونه از شماره دلخواه خودش تمامه پیام هارو بخونه
کافکا در کل فقط از مدل Publish /Subscribe پشتیبانی میکنه
rabbit اما مدل های مختلف از جمله queue را پشتیبانی میکنه که با خوندن یک پیام . پیام از بین میره در queue …
کافکا در مقایسه اما بسیار ارتقا پذیری بالایی داره


#6

broker ها برایشون فرقی نمیکنه که سرور خواننده چی باشه
در اکثر آرشیتکت های microservice یک نوع broker وجود داره چون اعضا سیستم از هم جدا میکنه


#7

بحث میکروسرویس اومد وسط من سال قبل این مقاله رو راجع به میکروسرویس نوشتم دوست داشتید می تونید بخونیدش

> لینک مقاله در ریسرچ گیت


#8

سیستم به این باحالی چرا ازش خبر نداشتم اصلا؟
اگه اساتید بتونن تاپیک آموزش (توضیح درمورد این مباحث) بذارن خیلی خوب میشه.


#9