سیستم‌های Publish-Subscribe

الگوی Publish-Subscribe: Topic و Consumer Group؛ Event Streaming و کاربردهای واقعی مثل News Feed

Pub-Sub چیست؟

در صف معمولی، پیام به «یک» مصرف‌کننده می‌رسد. در Publish-Subscribe، ناشر پیام را به «Topic» می‌فرستد و همه مشترکین نسخه خودشان را می‌گیرند:

ناشر: «سفارش جدید!» → Topic: orders
                              ├→ سرویس ایمیل (نسخه ۱)
                              ├→ سرویس انبار (نسخه ۲)
                              └→ سرویس تحلیل (نسخه ۳)

ناشر هیچ‌کدام را نمی‌شناسد — جداسازی کامل!

مفاهیم کلیدی Kafka

صف در برابر Pub-Sub

ویژگیQueuePub-Sub
گیرندهیک Consumerهمه مشترکین
کاربردتقسیم کار (Task)اطلاع‌رسانی رویداد
مثالپردازش عکس«سفارش ثبت شد» → همه سرویس‌ها

کاربردهای واقعی

Consumer Group — تقسیم هوشمند

Topic با ۴ Partition + Group با ۴ Consumer = هر کدام یک Partition (موازی کامل!). Consumer جدید بیاید؟ بازتقسیم (Rebalance).

نکته: «Fan-out» تایم‌لاین (مبحث مطالعه موردی) دقیقاً Pub-Sub است: پست سلبریتی → Topic → هزاران کارگر، تایم‌لاین فالوورها را به‌روز می‌کنند!

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل طراحی سیستم (System Design) است.

ابزارهای مرتبط