در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش کافکا (Kafka) در آپاچی قسمت 4 : ZooKeeper چیست؟

Zookeeper برای مدیریت و هماهنگی Kafka brokerها استفاده می شود سرویس Zookeeper برای آگاهی از producerها و consumerها و همچنین وجود هر broker جدید در سیستم Kafka و یا fail شدن سیستم Kafka استفاده می شود.Notificationهای دریافت شده توسط zookeeperها در مورد موجود بودن یا fail شدن broker ها خبر می دهد به این ترتیب producerها و consumerها تصمیم می گیرند برای هماهنگ کردن کار خود از broker دیگری استفاده کنند.

Producer

Producerها دیتا ها را از brokerها می گیرند زمانی که broker جدید start می شود همه producerها به طور خودکار شروع به جست و جو broker جدید کرده و پیام ها را به آن ارسال می کنند نکته: Kafka producer منتظر تایید پیام ها توسط broker نمی ماند و خیلی سریع پیام ها را ارسال می کند و این broker است که پیام ها را مدیریت می کند.

Consumer

از آن جایی که brokerها stateless هستند. Consumer باید به وسیله پارتیشن، تعداد پیام های که مصرف کرده را حفظ کند در صورتی که consumer پیام offset را تایید کند. نشان دهنده این است که consumerها همه ی پیام های قبلی را مصرف کرده اند در این حالت consumer یک درخواست غیر مستقیم به broker می دهد تا یک buffer byte آماده مصرف داشته باشد. consumer می تواند به هر نقطه ای از این پارتیشن به وسیله مقدار offset برود.

توجه داشته باشید که مقدار offset توسط zookeeper به consumer اطلاع داده می شود. تا اینجا درباره مفاهیم اصلی Kafka بحث کردیم حال می خواهیم در جریان workflow در Kafka قرار بگیریم.Kafka مجموعه ای از topicهاست که به یک یا چند پارتیشن تقسیم می شود به صورت توالی خطی از پیام ها است هر یک از پیام ها توسط شاخصی شناسایی می شوند که offset نامیده می شوند.تمام دیتاها در Kafka cluster در پارتیشن های مجزا هستند پیام های ورودی در انتهای پارتیشن نوشته می شود و پیام ها توسط consumerها خوانده می شود.

Work flow of pub-sub messaging

مراحل Work flow of pub-sub messaging به شرح زیر است:

  • producer ها پیام ها را در فواصل منظم به topicها ارسال می کنند.
  • Kafka brokerها تمام پیام ها را در قسمت پیکربندی شده برای topic خاصی ذخیره می کنند و پیام ها را به طور مساوی بین پارتیشن ها به اشتراک می گذارند. اگر producer هر پیام را ارسال کند دو پارتیشن وجود دارد و Kafka یک پیام را در پارتیشن اول و یک پیام را در پارتیشن دوم ذخیره می کند.
  • Consumer، topicهای شخصی را به اشتراک می گذارد.
  • هنگامی که یک topic توسط Consumer به اشتراک گذاشته شود Kafka، offset جاری topic را برای Consumer آماده می کند و همچنین offset در zookeeper ذخیره می شود.
  • Consumer از Kafka در فواصل زمانی منظم درخواست پیام جدید می کند.
  • هنگامی که Kafka پیام ها را از producer دریافت کرد این پیام ها را به consumer ارسال می کند.
  • Consumer پیام ها را دریافت و پردازش می کند.
  • هنگامی که پیام پردازش می شود، consumer یک تاییدیه به broker ارسال می کند.
  • هنگامی که Kafka تاییدیه را دریافت کرد مقدار offset را تغییر می دهد و آن را در zookeeper به روز رسانی می کند.
  • از این رو offsetها در zookeeper نگهداری می شوند، consumer می تواند پیام های بعدی را درست بخواند و مراحل بالا تا زمانی که consumer درخواست را متوقف نکند تکرار می شود.
  • Consumer دارای optionهایی است که می توان زمان را به عقب برگرداند و topic مورد نظر به عقب بر می گردد و پیام ها را می توان خواند.

Work of queue messaging/consumer group

در یک سیم پیام رسان به جای یک consumerها گروهی از consumerها با یک group ID برای یک topic مشترک را خواهیم داشت. به عبارت دیگر consumerها در یک topic با همان group ID مشترک به عنوان یک گروه در نظر گرفته می شوند و پیام ها در میان آن ها به اشتراک گذاشته می شوند.مراحل آن به شرح زیر است:

  • Producer یک پیام با یک topic در فاصله زمانی منظم ارسال می کند.
  • Kafka همه پیام ها را در قسمت پیکربندی شده برای آن topic خاصی که مشابه سناریو قبلی است ذخیره می کند.
  • Kafka consumer با یک topic مشخص می شود فرض کنید با topic 01 با group ID به عنوان group 1
  • Kafka consumer به همان شیوه ای pub-sub messaging تعامل دارد تا زمانی که consumer جدید همان topic را یعنی topic 01 با همان group ID یعنی group 1 را به اشتراک بگذارد تعامل دارد.
  • هنگامی که consumer جدید وارد می شود Kafka operation داده ها را بین هر مصرف کننده به اشتراک می گذارد و این اشتراک تا زمانی ادامه خواهد داشت که تعداد زیادی از کاربران به پارتیشن های پیکربندی شده برای آن topic خاص دسترسی داشته باشند.
  • هنگامی که تعداد consumerها از تعداد پارتیشن ها فراتر رود consumer جدید هیچ پیامی را دریافت نمی کند پس این سناریو به وجود می آید که هر کاربر حداقل یک پارتیشن به خود اختصاص داده و هنگامی که همه ی پارتیشن ها به consumerها اختصاص داده شود consumer جدید مجبور خواهد بود که منتظر بماند.
  • همچنین این ویژگی را به عنوان consumer group می نامند.

Zookeeper

یکی از وابستگی های میانی apache zookeeper, apache Kafka است که یک سرویس هماهنگ ساز توزیع شده است. Zookeeper سرویسی به عنوان رابط هماهنگ کننده بین Kafka brokerها consumerها است.Meta data, Kafkaها را در zookeeper ذخیره می کند، مانند اطلاعاتی در مورد topicها، brokerها و consumerها و offsetو ...Zookeeper یک سرویس هماهنگ کننده توزیع شده برای مدیریت مجموعه زیادی از hostها نیز می باشد.

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

نویسنده: علیرضا قنبری پور

منبع: جزیره لینوکس و سیستم های متن باز وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#پیام_رسان #kafka #آپاچی #کلان_داده #کافکا #zookeeper #علم_داده #جریان_پردازی #مهندسی_داده
عنوان
1 آموزش کافکا (Kafka) در آپاچی قسمت 1 : Kafka چیست ؟ رایگان
2 آموزش کافکا (Kafka) در آپاچی قسمت 2 : مقایسه Kafka با سایر IM ها رایگان
3 آموزش کافکا (Kafka) در آپاچی قسمت 3 : آشنایی با اصطلاحات Kafka رایگان
4 آموزش کافکا (Kafka) در آپاچی قسمت 4 : ZooKeeper چیست؟ رایگان
5 آموزش کافکا (Kafka) در آپاچی قسمت 5 : نصب و تنظیمات Kafka قسمت 1 رایگان
6 آموزش کافکا (Kafka) در آپاچی قسمت 6 : نصب و تنظیمات Kafka قسمت 2 رایگان
7 آموزش کافکا (Kafka) در آپاچی قسمت 7 : نصب و تنظیمات Kafka قسمت 3 رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....