استفاده از Consumer Group برای تقسیم بار

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/06/25
  • تعداد بازدید: 3

یکی از ویژگی‌های مهم Kafka، قابلیت Consumer Group است که اجازه می‌دهد بار پردازش پیام‌ها بین چند Consumer تقسیم شود. این ویژگی برای مقیاس‌پذیری و افزایش کارایی سیستم بسیار مفید است.

۱. مفهوم Consumer Group

هر Consumer که عضو یک گروه باشد، پیام‌ها را از Partitionهای Topic اختصاصی خود دریافت می‌کند. Kafka تضمین می‌کند که هر Partition تنها توسط یک Consumer در گروه مصرف شود. به این ترتیب، چند Consumer می‌توانند به صورت موازی پیام‌ها را پردازش کنند.

۲. مثال Consumer با گروه

from kafka import KafkaConsumer

consumer = KafkaConsumer(
    'my-topic',
    bootstrap_servers='localhost:9092',
    auto_offset_reset='earliest',
    enable_auto_commit=True,
    group_id='my-group',  # نام گروه مصرف‌کننده
    value_deserializer=lambda v: v.decode('utf-8')
)

print("در حال دریافت پیام‌ها با Consumer Group 'my-group'...")

for message in consumer:
    print(f"Partition: {message.partition}, پیام: {message.value}")

۳. مزایای استفاده از Consumer Group

  • تقسیم بار پردازش بین چند Consumer.
  • مقیاس‌پذیری ساده با اضافه کردن Consumer جدید به گروه.
  • افزایش تحمل خطا: اگر یک Consumer قطع شود، سایر اعضای گروه Partitionهای آن را مصرف می‌کنند.
  • حفظ Ordering در هر Partition: هر Partition تنها توسط یک Consumer در گروه پردازش می‌شود.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.