Submit Search
Upload
Apache kafka
•
0 likes
•
27 views
mohammadhosseinkaka
Follow
این متن برای آشنایی با سیستم های توزیع ،مدل کافکا آماده شده است. امیدوارم مفید واقع بشه.
Read less
Read more
Education
Report
Share
Report
Share
1 of 19
Download now
Download to read offline
Recommended
راهنمای گیر لوله برای حفاران
راهنمای گیر لوله برای حفاران
Mohsen Farsani
Fa sharh reyaz_al_salehin_06
Fa sharh reyaz_al_salehin_06
Muhammad Nabeel Musharraf
Fa sharh reyaz_al_salehin_05
Fa sharh reyaz_al_salehin_05
Muhammad Nabeel Musharraf
Tafheem ul Quran - Surah Al-Baqra Part 1
Tafheem ul Quran - Surah Al-Baqra Part 1
The Chosen One
Fa sharh reyaz_al_salehin_04
Fa sharh reyaz_al_salehin_04
Muhammad Nabeel Musharraf
CCNP Route and Switch in Farsi
CCNP Route and Switch in Farsi
Abolfazl Hashemi
آموزش تعمیرات موبایل pdf
آموزش تعمیرات موبایل pdf
fannisazanedu
Islam aur jadeed maashi nazaryat (iqbalkalmati.blogspot.com)
Islam aur jadeed maashi nazaryat (iqbalkalmati.blogspot.com)
Muhammad Nabeel Musharraf
Recommended
راهنمای گیر لوله برای حفاران
راهنمای گیر لوله برای حفاران
Mohsen Farsani
Fa sharh reyaz_al_salehin_06
Fa sharh reyaz_al_salehin_06
Muhammad Nabeel Musharraf
Fa sharh reyaz_al_salehin_05
Fa sharh reyaz_al_salehin_05
Muhammad Nabeel Musharraf
Tafheem ul Quran - Surah Al-Baqra Part 1
Tafheem ul Quran - Surah Al-Baqra Part 1
The Chosen One
Fa sharh reyaz_al_salehin_04
Fa sharh reyaz_al_salehin_04
Muhammad Nabeel Musharraf
CCNP Route and Switch in Farsi
CCNP Route and Switch in Farsi
Abolfazl Hashemi
آموزش تعمیرات موبایل pdf
آموزش تعمیرات موبایل pdf
fannisazanedu
Islam aur jadeed maashi nazaryat (iqbalkalmati.blogspot.com)
Islam aur jadeed maashi nazaryat (iqbalkalmati.blogspot.com)
Muhammad Nabeel Musharraf
Cisco ucs blade servers in persian
Cisco ucs blade servers in persian
Farid Nasiri
گزارش پانوراما
گزارش پانوراما
E-Commerce Monitor (ECM)
کتاب قدرت در درون ماست . لوئیس ال هی
کتاب قدرت در درون ماست . لوئیس ال هی
Farid Kamali
Panorama2
Panorama2
E-Commerce Monitor (ECM)
گزارش پانوراما
گزارش پانوراما
E-Commerce Monitor (ECM)
Qafla e-haq302014
Qafla e-haq302014
Zubair Zman
Kitab ut tib (Urdu) || Australian Islamic Library || www.australianislamiclib...
Kitab ut tib (Urdu) || Australian Islamic Library || www.australianislamiclib...
Muhammad Nabeel Musharraf
گزارش پانوراما
گزارش پانوراما
E-Commerce Monitor (ECM)
گام بعدی
گام بعدی
E-Commerce Monitor (ECM)
Natural resources law(qom)
Natural resources law(qom)
Ali Mashhadi
اساسات کمپیوتر ساینس
اساسات کمپیوتر ساینس
Kunduz University
NATM تونل زنی به روش
NATM تونل زنی به روش
Hamed Zarei
فهرست مطالب
فهرست مطالب
Muhammadi Iblagh
واقعیت مجازی ( Virtual Reality )
واقعیت مجازی ( Virtual Reality )
Farbod Behnaminia
انفورمتیک
انفورمتیک
Kunduz University
Tafheem ul Quran - Surah Al-Fatiha
Tafheem ul Quran - Surah Al-Fatiha
The Chosen One
مستشرقین اور تحقیقات اسلامی || Orientalists and Islamic Research
مستشرقین اور تحقیقات اسلامی || Orientalists and Islamic Research
Muhammad Nabeel Musharraf
Andesha y-zawal by ahmed nadeem qasmi
Andesha y-zawal by ahmed nadeem qasmi
pakiza ch
آبمیوه گیری
آبمیوه گیری
ali.pb
سامانه دبیرخانه
سامانه دبیرخانه
Amir Deljouyi
More Related Content
What's hot
Cisco ucs blade servers in persian
Cisco ucs blade servers in persian
Farid Nasiri
گزارش پانوراما
گزارش پانوراما
E-Commerce Monitor (ECM)
کتاب قدرت در درون ماست . لوئیس ال هی
کتاب قدرت در درون ماست . لوئیس ال هی
Farid Kamali
Panorama2
Panorama2
E-Commerce Monitor (ECM)
گزارش پانوراما
گزارش پانوراما
E-Commerce Monitor (ECM)
Qafla e-haq302014
Qafla e-haq302014
Zubair Zman
Kitab ut tib (Urdu) || Australian Islamic Library || www.australianislamiclib...
Kitab ut tib (Urdu) || Australian Islamic Library || www.australianislamiclib...
Muhammad Nabeel Musharraf
گزارش پانوراما
گزارش پانوراما
E-Commerce Monitor (ECM)
گام بعدی
گام بعدی
E-Commerce Monitor (ECM)
Natural resources law(qom)
Natural resources law(qom)
Ali Mashhadi
اساسات کمپیوتر ساینس
اساسات کمپیوتر ساینس
Kunduz University
NATM تونل زنی به روش
NATM تونل زنی به روش
Hamed Zarei
فهرست مطالب
فهرست مطالب
Muhammadi Iblagh
واقعیت مجازی ( Virtual Reality )
واقعیت مجازی ( Virtual Reality )
Farbod Behnaminia
انفورمتیک
انفورمتیک
Kunduz University
Tafheem ul Quran - Surah Al-Fatiha
Tafheem ul Quran - Surah Al-Fatiha
The Chosen One
مستشرقین اور تحقیقات اسلامی || Orientalists and Islamic Research
مستشرقین اور تحقیقات اسلامی || Orientalists and Islamic Research
Muhammad Nabeel Musharraf
Andesha y-zawal by ahmed nadeem qasmi
Andesha y-zawal by ahmed nadeem qasmi
pakiza ch
آبمیوه گیری
آبمیوه گیری
ali.pb
سامانه دبیرخانه
سامانه دبیرخانه
Amir Deljouyi
What's hot
(20)
Cisco ucs blade servers in persian
Cisco ucs blade servers in persian
گزارش پانوراما
گزارش پانوراما
کتاب قدرت در درون ماست . لوئیس ال هی
کتاب قدرت در درون ماست . لوئیس ال هی
Panorama2
Panorama2
گزارش پانوراما
گزارش پانوراما
Qafla e-haq302014
Qafla e-haq302014
Kitab ut tib (Urdu) || Australian Islamic Library || www.australianislamiclib...
Kitab ut tib (Urdu) || Australian Islamic Library || www.australianislamiclib...
گزارش پانوراما
گزارش پانوراما
گام بعدی
گام بعدی
Natural resources law(qom)
Natural resources law(qom)
اساسات کمپیوتر ساینس
اساسات کمپیوتر ساینس
NATM تونل زنی به روش
NATM تونل زنی به روش
فهرست مطالب
فهرست مطالب
واقعیت مجازی ( Virtual Reality )
واقعیت مجازی ( Virtual Reality )
انفورمتیک
انفورمتیک
Tafheem ul Quran - Surah Al-Fatiha
Tafheem ul Quran - Surah Al-Fatiha
مستشرقین اور تحقیقات اسلامی || Orientalists and Islamic Research
مستشرقین اور تحقیقات اسلامی || Orientalists and Islamic Research
Andesha y-zawal by ahmed nadeem qasmi
Andesha y-zawal by ahmed nadeem qasmi
آبمیوه گیری
آبمیوه گیری
سامانه دبیرخانه
سامانه دبیرخانه
Apache kafka
1.
1 کاکا محمدحسین استادتبار یعغوبی
آقای : سال1399-1398 APACHE KAFKA
2.
2 فهرست مقدمه............................................................................................................................................................................................3 Apache Kafkaچگونهکارمیکند؟................................................................................................................................................4 مقیاسپذیرییاتوسعهپذیری(Scalability).........................................................................................................................................6 انواعتوسعهپذیری.......................................................................................................................................................................6 توسعهعمودی.......................................................................................................................................................................6 توسعهافقی..........................................................................................................................................................................6 ساختارکافکا...................................................................................................................................................................................7 Producer:...............................................................................................................................................................................7 Consumer:.............................................................................................................................................................................7 Consumer Group:................................................................................................................................................................7 Broke:....................................................................................................................................................................................7 Cluster:...................................................................................................................................................................................8 Topic:......................................................................................................................................................................................8 Partition:................................................................................................................................................................................8 Primary
Broker:.................................................................................................................................................................11 Replicas Brokers:...............................................................................................................................................................11 Replication Factor:...........................................................................................................................................................12 Apache ZooKeeper:..........................................................................................................................................................12 نماییازمعماریکلی:......................................................................................................................................................................12 نحوهکارکافکابصورتکلی..............................................................................................................................................................13 ضمانتهایکافکا...........................................................................................................................................................................13 مصاحبهجونراو.............................................................................................................................................................................14 منابع...........................................................................................................................................................................................19
3.
3 مقدمه ابزار از مختصری
شرح و معرفی به ابتدا مقاله این درApache Kafkaمیمصاحبه از هایی قسمت همچنین . پردازیم ( راو جونJun rao)می بیان را میرسون جف با.کنیم جونراوابتدادرLinkedInمشغولبودهاستوسپسبهافتتاحشرکتیمبادرتکردهکهکارشبهشکلگستردهایمبتنیبر Kafkaاست.اویکمحققوتوسعهدهندهنرمافزاراستوبیشترزمانشرابهتحقیقدرحوزههایMapReduce،پایگاههای مقیاس،پذیرپردازشپرسوجوهاوجنبههایدیگرانبارههایداده(DataWarehouse)صرفکردهاست.اوطیچندسال گذشتهازتثبیتکنندههایکد(Commiter)درپروژهKafkaبودهاست. Apache Kafkaچیست؟ آپاچیکافکایکپلتفرمتوزیعشدهبرایپردازشدادههایجریانیبودهوقادربهرسیدگیوپردازشچندینتریلیونرویداد بهصورتهمزماناست.کافکادرابتدابهعنوانیکابزاربرایارسالپیامهاییباتعدادباالبکاربردهمیشد.کافکااززمانایجاد ومنبعبازشدنتوسطلینکدیندرسال۲۰11،بهسرعتازارسالپیامبهیکپلتفرمپردازشتوزیعیکاملتبدیلشدهاست. آپاچی،کافکابهعنوانیکپلتفرمدادههایدر،جریاندارایقابلیتهاییازقبیلزمانپاسخ،کوتاهکاراییباالوتحملخطابودهو قادربهپردازشجریانهاییسریعازرویدادهامیباشد.،کافکابرایپشتیبانیازبرنامههایکاربردیمشتریواتصالسیستمهای پاییندستبادادههایزمانواقعیپاسخهایدرحدمیلیثانیهفراهممیکند.
4.
4 Apache Kafkaمی کار
چگونهکند؟ همانطورکهگفتهشدوظیفهوهدفاصلیApache Kafka،ارائهیکبستربرایمدیریتوکنترلجریانهایاطالعاتیبا کارآییبسیار،باالدرسیستمهاوزیرسیستمهایمختلفاست.یعنیشمامیتوانیدباایجادکردنیکPipelineبرایجریان اطالعات،خودوابستگیمستقیمسیستمهاوزیرسیستمهاراازبینببرید؛آنهمبصورتیکهبروزمشکلیدرهر،قسمتکمترین میزانتاثیررادرسایرقسمتهاداشتهباشد. فرضکنیدشماتعدادزیادیسیستموزیرسیستممختلفراداشتهباشیدکههرکدامازآنهانیازمندارتباطبابرخیازقسمتهای دیگراست.دراینصورتشمادوراهدارید:اولاینکهدرهرقسمتسرویسهاییرابرایارتباطباسایرقسمتهاپیادهسازی کنیداینکه یاهرقسمتبصورتمستقیمباسایرقسمتهادرارتباطباشد. مشخصاکنترلومدیریتجریاناطالعاتیدراینپیادهسازیکاربسیاردشواریاست.تغییرهر،قسمتتاثیرمستقیمیبرروی سایرقسمتهاداردودرصورتیکههریکازقسمتهابامشکلیروبرو،شوندسایرقسمتهایمرتبطنیزبامشکلروبرومیشوند. اینمشکلزمانیبسیارنمایانمیشودکهدرمعماریهاییمانند،میکروسرویسبدلیلباالرفتنتعدادزیرسیستمهاوارتباطات ،آنهامدیریتاینارتباطاتکاربسیار،دشوارپرهزینهوپیچیدهایمیشود. روشApache KafkaبرایرفعمشکلفوقبهاینصورتاستکهKafkaبابرعهدهگرفتنمدیریتارتباطاتوجریان دادهایقسمتهای،مختلفبهشماکمکمیکندتاتیمپیاده،سازیتنهاتمرکزشانرابررویBusinessیکهمیخواهندپیاده
5.
5 سازی،کنندقراردهند.بااینروشمیتوانیمبهراحتیسیستمهاییراپیادهسازیکنیمکهازنظرارتباطیدرحالت،معمول پیچیدهیابسیارپیچیدهاند. : کنید مشاهده همانطورکهمیبینیددیگرنیازینیستتاقسمتهایمختلفبصورتمستقیمبایکدیگردرارتباطباشند؛تمامیارتباطاتازطریق Kafkaانجاممیشود.تغییریک،قسمتتاثیرزیادیبررویسایرقسمتهایعنی
ندارددسترسخارجشدنیابروزهرگونه مشکلیدریک،قسمتبررویکلسیستمتاثیرزیادیندارد.پیامهایمربوطبهیکقسمتتازمانیکهپردازشنشدهاندازبین نمیروند؛پسسیستمهامیتواننددرحالتOfflineنیزبهکارخودادامهدهند.شمامیتوانیددراینروشتمامیقسمتهای سیستمرابصورتیکClusterپیادهسازیکنید.اینصورت دراحتمالازدسترسخارجشدنهرقسمتبهکمترینمیزان میرسد.حتیدرصورتیکهیکقسمتبصورتموقتازدسترسخارج،شودپیامهایمرتبطباآنقسمتتازمانیکهدوبارهبه جریانپردازش،بازگرددازبیننمیبلکه روندپسازاضافهشدنقسمتازدسترسخارج،شدهبالفاصلهتمامیپیامهایمرتبط باآنقسمتبرایشارسالمیشوند.برایباالرفتنمیزانکارآییوتحمل،خطابهراحتیمیتوانیدخودKafkaرانیزبصورت یکClusterپیادهسازیکنیدوباباالرفتنتعداد،درخواستدرصورتنیازمیتوانیدعملیاتمقیاسپذیریافقیرابه راحتترینروشممکنانجامدهید.
6.
6 مقیاسپذیرییاتوسعهپذیری(Scalability) توسعهپذیرییاهمانScalabilityکهبعضابهآنمقیاسپذیریهمگفتهمیشودیکتعریفبسیارسادهدارد:سیستمیکه بتواندخواستههایدرحالافزایشراپاسخدهد.برایمثالشمایکنرمافزارداریدکهبرروییکسرورقراردارد (مثالیکوبسایت)وروزانه1۰۰بازدیدکنندهازوبسایتشمادیدنمیکنندامابعدازمدتیاین1۰۰بازدیدکنندهدرروز به1۰هزاربازدیدکنندهمی،رسیددرصورتیکهسرورشمابتواندباهزینهیبهنسبتمعقولیاین1۰هزاربازدیدکنندهرامدیریت ،کندشمایکسیستمScalableیاتوسعهپذیرخواهیدداشت.مثالفرض،کنیدبرای1۰۰بازدیددر،روزشمامبلغ1۰هزار توماندرماهپرداختمیکردید.حاالکهبازدیدشما1۰هزارنفرشده(یعنی1۰۰برابر)،هزینهیشمانباید1۰۰برابرشود.مثال هزینهشمابهجای1۰هزارتوماندر،ماهبایستی۲۰هزارتوماندرماه،شودتابتوانیمبگوییمیکسیستمتوسعهپذیرداریم. یکیازاهدافسیستمهایتوزیعشده،نیزتوسعهپذیریآنهاست.(بهقولآقایتننباومیکیازچهارهدفسیستمتوزیع ،شدهتوسعهپذیربودنآناست.یکیدیگرازایناهدافسیستمتوزیع،شدهشفافیتیاهمانTransparencyاست). گفتیم که همانطوراگردریکسیستمتوزیع،شدهدرخواستهایی(Requests)کهبهسیستممیآیند1۰برابر،شودسیستم توزیعشدهبایدبتواندمثالبا۲برابرکردنمنابع،خوداینتعداددرخواستهارابدونمشکلپاسخگوباشد. انواعتوسعهپذیری 1.توسعهعمودییابهاصطالحScale
Up ۲.توسعهافقییابهاصطالحScale Out عمودی توسعه درتوسعهعمودیکهبهآنScale Upکردننیزگفتهمی،شودشمابههرکدامازگرهها(Nodes)کهدرواقعهمان کامپیوترهایموجوددرسیستمتوزیعشده،هستندمنابعیمانندRam،CPUیاکارتگرافیکو…اضافهمیکنید.بااینکار شماسیستمهایقویتریداریدکهمیتوانندبهدرخواستهایبیشتریدرزمانسریعترپاسخدهند. افقی توسعه دراین،روشبهجایاضافهکردنمنابعمانند بیشترRamبهکامیپوترهایجاریدرسیستمتوزیع،شدهتعداگرهها(Nodes) راافزایشمیدهیم.برایمثالتعدادیبیشتریکامپیوتربهسیستمتوزیعشدهاضافهمیکنیم. اگرچهروش،اولروشیسادهوًابعضکارا،استولیپیشنهادمیشوددریکسیستمتوزیعشدهازروشدوماستفادهکنید.
7.
7 ساختارکافکا کافکابهصورتخوشهایبرروییکیاچندسرورکارمی.کند کافکاجریاندادههاورکوردهارادرساختارهاییبهنامتاپیک( topics)ذخیرهمی.کند هررکوردیداراییک،کلیدیکمقدارویکبرچسبزمانیمیباشدتابصورتمجزاازسایررکوردهامشخص.باشد : کنیم
تعریف را اصطالح چندین باید حال Producer: ارسالکنندهکننده تولید رابط یا پیام.Application،سیستمیازیرسیستمیکه استعملیاتPublishپیامرابرایTopic خاصازKafka Serverانجاممیدهد. Consumer: دریافتکنندهکننده مصرف رابط یا پیام.Application،سیستمیازیرسیستمیکهبرروییکیاچندTopic،خاص Subscribeکردهاست.پردازد می رکوردها پردازش به و شده متصل تاپیک چند یا یک به دیگر عبارتی به(همچنینهر ConsumerمیتواندروییکیاچندPartitionازیکTopicخاصنیزSubscribeکند.) Consumer Group: گروهیازConsumerهامیباشندکهبایکgroup.id،مشخصشدهاند.عمومااینگروهشاملیکReplicateاز یکApplicationاست؛مانندگروهارسالکنندهایمیل(یکزیرسیستمارسالکنندهایمیلکهچندینباردرسرورهای مختلفاجراشدهاست)Kafka.اینضمانترابهمامیدهدکههرپیامذخیرهشدهدریکTopic،برایتمامی ConsumerGroupهایمرتبطارسالشود؛امادرهرConsumer Group،تنهایکدریافتکنندهداشتهباشد.یعنی هرپیامدرهرConsumer Group،تنهاتوسطیکConsumerدریافتشود. Broke: قسمتیکهتمامیپیامهاراازProducerدریافتمی،کندسپسآنهارادرLogمربوطبهTopicمشخصشدهذخیره میکندوپساز،آنپیامذخیرهشدهرابرایتمامیConsumerهایمرتبطارسالمیکند.
8.
8 Cluster: مجموعهایازBrokerهامیباشدکهبصورتیکClusterاجراشدهاند.اینکارباعثباالرفتنکارآییوتحملخطامیشود. Topic: یکدستهبندیبرایذخیرهکردنپیامهایPublishشدهمیباشد.TopicهاهمانندمفهومTableهادرSQL Server میباشند.همانطورکهمیدانیدهرTableازقبلتعریفشدهاست.یککاربرباارسالیکدرخواستثب،تدادههارادرآن ذخیرهمیکندوسپسگروهیازکاربرانازدادههایثبتشدهاستفادهمیکنند.درمفهمومTopicنیزابتداماTopicمورد نظرراباخصوصیاتیکهبایدداشتهباشدتعریفمیکنیم(البتهمیتوانبصورتDynamicنیزآنراتعریفکرد؛امااینروش توصیهنمیشود.)سپسProducerپیاممربوطهرابههمراهنامTopicبرایBrokerارسالمیکند.Brokerپیامرادر PartitionمربوطهازTopicذخیرهمیکندوسپسپیامبرایتمامیConsumerهایمربوطهارسالمیشود. Partition: یکیازتفاوتهایبسیارمهمKafkaباسایرMessage brokerهامانندRabitMQکهباعثباالرفتنکارآییآننیز شده،استقابلیتPartitionدرTopicهامیباشد.درواقعهرTopicازیکیاچندینPartitionبرایذخیرهدادهها استفادهمیکند.تعریفدرستتعدادPartitionهادریکTopic،تاثیرمستقیمیبردرجههمزمانیوکارآییدرآن Topicوکلسیستمدارد.درKafkaتمامیپیامهابههمانترتیبیکهواردشده،انددرPartitionهاییکTopicذخیره میشوندوبههمانترتیبنیزبرایConsumerهاارسالمیشوند. بطورمثالفرضکنیدتعدادPartitionهاییکTopicبانامDepartmentMessageیک
،میباشد(ازاینTopic برایذخیرهپیامهایواحدهایمختلفیکسازماناستفادهمیشود.)دراینصورتتمامیپیامهایدریافتیتنهادریک Partitionذخیرهمیشوند.
9.
9 هرخانهازیکPartition،توسطیکشناسهازنوعintوبانامoffsetدردسترساست.تمامیپیامهایجدیدارسالی توسطProducerباoffsetایبزرگترازoffsetموجوددراینPartitionذخیرهمیشوند؛یعنیدرانتهایآنقرار میگیرند.درمثالفوقدرصورتدریافتپیام،جدیدoffsetآنباعدد1۰مقداردهیمیشود.همچنینعملیاتخواندننیزاز کوچکترینoffsetایکههنوزمقدارآنتوسطConsumerهاخواندهنشده،استانجاممیشود.همانطورکهمشخص،است بدلیلاینکهتعدادPartitionهایاینمثالعددیکمی،باشدتمامیدرخواستهایProducerهادریکPartitionقرار میگیرندوتمامیConsumerهانیزازطریقیکPartitionبهپیامهادسترسیدارند؛یعنیدرصورتباالبردنتعداد ProducerهایاConsumerها،کارآییباالنمیرود.البتهبااینکهکنترلمقداراولیهoffseبرایشروعیکConsumer بهدستخودConsumerوZookeeper،استامادراکثرمواردتمامیConsumerهاییکTopicبایدازیک ،نقطهشروعبهخواندندادههاکنند.دراینحالتتازمانیکهپیامباoffset 1،توسطConsumerایخوانده،نشودهیچ Consumerاینمیتواندپیامشماره۲رابخواند.استفادهکردنازیکPartitionبیشترزمانیکاربردداردکهبخواهید تمامیپیام،هایتانواقعادریکصفقراربگیرند. حالفرضکنیددرسازمانشماسهواحد،اداریمالیوآموزشوجوددارد.دراینصورتبدلیلاینکهتمامیپیامهادریک Partitionذخیرهمی،شوندتازمانیکهیکواحدتمامیپیامهایمرتبطباخودراازابتدایPartitionنخوانده،استدیگر واحدهانمیتوانندبهپیامهایمرتبطباخوددسترسیداشتهباشند.پسدراینصورتمامیتوانیمتعدادPartitionهایاین Topicراعدد3درنظربگیریم؛بصورتیکهپیامهایمرتبطباهرواحددریکPartitionجداقراربگیرد. : شکل
بدین
10.
10 دراینروشهرProducerزمانیکهپیامیرابرایاینTopicارسالمی،کندیکKeyنیزبرایآنمشخصمیکندواین KeyنشاندهندهایناستکهپیامجدیدبایددرکدامPartitionذخیرهشود.یعنیبصورتهمزمانمیتوانیددرهرسه Partition،پیامهایتانراذخیرهکنید؛بصورتیکهبطورمثالتمامیپیامهایمربوطبهواحد،اداریدرPartition0وتمامی پیامهایمربوطبهواحد،مالیدرPartition 1وواحدآموزشدرPartition 2ذخیرهشوندوهمچنینعملیاتخواندن ازاینTopicنیزمیتواندبصورتهمزماندرواحدهایمختلفانجامشود. بایددرتعریفتعدادPartitionهاییکTopicایننکتهرادرنظربگیریدکهاینتعدادکامالبهنیازمندیشماوکارآیی کهشمامدنظر،داریدبستگیدارد.تعداداینPartitionهاحتیمیتواندبهتعدادUserهاییکسیستمنیزتعریفشود. عالوهبرآنبایدبدانیدکههرPartitionدرهرزمانتنهاتوسطیکPrimary
Brokerمیتوانددردسترسسایرقسمتها قراربگیردوتمامیعملیاتخواندنونوشتندرPartitionتوسطKafka Serverانجاممیشودودرصورتیکهبههردلیلی اینسرورازدسترسخارج،شودمدیریتاینPartitionبهسرورهایدیگردادهمیشود. :است شکل بدین شماتیک بصورت کافکا کار نحوه
11.
11 : کنیم تعریف
نیز دیگری معانی یکسری باید کلی معماری نمایش از قبل Primary Broker: یکKafka ServerکهمسئولخواندنونوشتندریکPartitionاست.دریکClusterهرPartitionدریکزمان تنهایکPrimary Brokerدارد.اینPrimary BrokerهمزمانمیتواندبرایPartitionهایدیگرنقش Replicas Brokerرابازیکند.انتخابیکPrimary BrokerبراییکPartitionتوسطZooKeeperانجام میشود. Replicas Brokers: Kafka Serverهاییکه هستندشاملیککپیازPartitionمیباشند.عملیاتخواندنونوشتندرPartitionتوسط Primaryانجاممیشود.درصورتیکهPrimaryازدسترسخارج،شودZooKeeperیکیازReplicas Brokerهارا بعنوانPrimaryدرنظرمیگیرد.همچنینایننکتهرابایددرنظربگیریدکههرReplicateهمزمانمیتواندPrimary پارتیشنهایدیگرباشد.
12.
12 Replication Factor: اینخصوصیتاحتمالازدستدادندادههاییکTopicرابهحداقلمیرساند؛بهاینصورتکههرپیامازیکTopic،در چندینسرورمختلفکهتعدادآنهاتوسطاینخصوصیتمشخصمی،شودنگهداریمیشود. Apache ZooKeeper: KafkaهیچStateایرانگهنمیدارد(اصطالحاstatelessمیباشد.)برایذخیرهکردنومدیریتتمامیStateهااز جملهاینکهدرحالحاضرPrimary
BrokerبراییکPartitionچهسروری،استیااینکهپیامهاییکPartitionتا کدامoffsetتوسطConsumerهاخواندهشدهاندیااینکهکدامConsumerدرحالحاضردریکConsumer GroupمسئولیکPartitionمی،باشدتوسطApache Zookeeperانجاممیشود. : کلی معماری از نمایی
13.
13 کافکا کار نحوهکلی
بصورت کافکاپیامهاییراکهازبسیاریاز"تولیدکنندگان"دریافتمیکندراذخیرهکردهودادههابدینصورتبررویپارتیشنهای گوناگونیدر"تاپیکهای"مختلفتوزیعشدهوپارتیشنبندیمیشوند.درهرپارتیشنپیامهاباهمشاخصگذاریشدهوبا یکبرچسبزمانیذخیرهمیشوند.سایرفرایندهامثل"مصرفکنندگان"میتوانندپیامهاراازپارتیشنهادریافتکردهو اطالعاتموردنظرخودرادرخواستکنند.کافکابررویخوشههاییازیکیاچندسروراجرامیشودوپارتیشنهامیتوانند بررویچندیننودمختلفتوزیعشوند. آپاچیکافکاهنگامیکههمراهباآپاچی،استورماچبیسواسپارکاستفادهشودبهطورموثریمیتوانددادههایبالدرنگو جریانراپردازشکند.اگرکافکابهعنوانیکخوشهرویچندینسرورپیکربندیواجراشوددراینصورتبهکمک4رابط کاربریخودبراحتیعملیاتانتشارودریافتوپردازشاطالعاترابهسرعتوباکاراییباالانجاممیدهد. تواناییکافکابرایارایهجریانهایعظیمدادهوپیام،همراهباتحملخطایباال،آنراجایگزینبرخیازسیستمهایپیامرسانی مرسوممانندJMS،AMQPوغیرهکردهاست. کافکا های ضمانت Kafkaمی خودش کار برای ضمانت سه ،: از اند عبارت که دهد 1-تمامیپیامهایدریافتیدریکPartitionازیکTopic،بههمانترتیبیکهدریافتمیشوندذخیرهمیشوند. ۲-ConsumerهاتمامیپیامهارادریکPartitionبههمانترتیبیکهذخیرهشده،انددریافتمیکنند. 3-دریکTopicباReplication FactorایبامقدارN،درجهتحملخطاN - 1میباشد.
14.
14 راو جون مصاحبه -KafkaدرمقایسهباسیستمهایسنتیترپیامرسانیازقبیلRabbitMQوActiveMQچگونهاست؟ اینسئوالخوبیاستکهزیادازماپرسیدهمیشود.مناینطورجمعبندیمیکنمکهدوتفاوتاصلیوجودداردکهدر،آن Kafkaکمیمزیتدارد.یکیایناستکهKafkaًاواقعبرایحجمزیاددادهطراحیشده،استسیستمهایسنتیترًاعموم تنهامسئولذخیرهسازیدادههاییبودندکهدرپایگاهدادهتولیدمیشداماKafkaبرایذخیرهسازیمواردیازقبیلآمارهای سنجشکسبوکار(Business
Metrics)،الگهایسرویس،هاآمارهایسنجشعملیاتیو…بوده،استایننوعدادههااز لحاظحجم1۰۰یا1۰۰۰برابربزرگترازدادههاییهستندکهدرپایگاهدادهذخیرهمیکنید.اینهاچیزهایینیستکه سیستمهایپیامرسانیسنتیبرایشطراحیشدهباشداماKafkaًاواقعبرایاینهاطراحیشدهاست.برایمثالKafkaازابتدا بهعنوانیکسیستمتوزیعشدهطراحیشدهاستبنابرایناگرحجمدادههاافزایشیابدمیتوانیدبهراحتیماشینهایبیشتری بهکالستراضافهکنیدتاآنحجمدادهرارسیدگیکنیدوهمینطوردرمؤلفههایمختلفمیتوانیمچندبهینهسازیمختصرازقبیل فشردهسازیودستهکردن(Batching)داشتهباشیمتابتوانیماینحجمازدادههارابهشکلکاراتریرسیدگیکنیم. -آیاشماKafkaرابهعنوانیکسیستمپیامِیرسانانبارهداده(Datawarehouse)توصیفمیکنید؟یااین تعریفخیلیمحدوداست؟ فکرمیکنممیتوانیدآنرایکانبارهدادهدرنظربگیریدامادرواقعجاییاستکهمیتوانیدهرنوعدادهایراجمعآوریکنیدو باآنداده،هاپلتفرمهایمختلفیراتغذیهکنید.یکیازمهمترینجاهاییکهمیتوانیدتغذیهکنیدپلتفرمهایمربوطبهانبارههای دادهبرونخطاستامادرعینحالمیتوانیدازهمانسیستمبرایتغذیهپلتفرمهایبالدرنگترهماستفادهکنید.نقطهترکیب برایهردونوعمصرفبرونخطوبالدرنگاست. -وقتیازموازیسازیصحبتمیکنیدبهمنظورافزونگی(Redundancy)یاتحملخطا(Fault Tolerant) استویابیشتربهاینعلتاستکهسرعتافزایشیابد؟ فکرمیکنمبیشتربهاینخاطراستکهسرعتافزایش،یابدبهاینترتیبکهًامنطقپارتیشنهایمختلفمیتوانندبصورت ،مستقلمصرفکنند.هرچهپارتیشنهایبیشتریداشتهباشیدبرایهممصرفکنندههاوهمکالینت،هاکانالهایموازیبیشتری خواهیدداشت.بهاینترتیبدرجهموازیبودنراافزایشمیدهید.هرپارتیشنمیتواندرونوشتبرداری(Replicate)هم بشودواینراهیاستکهبرایفراهمکردنقابلیتاطمیناندرسیستممیتوانیماستفادهکنیمامااین،مسألهارتباطیبا موازیسازیندارد.
15.
15 -پیامرسانیًاعمومدومدلدارد:صفکردن(Queueing)وانتشار/عضویت(Publish/Subscribe).درروش صف،کردنانبوهیازمصرفکنندههاراداریمکهازسرورمیخوانندوهرپیامتنهابهیکیازمصرفکنندههامیرود. ًالمثممکناستلیستیازوظایفداشتهباشیدکهسرورمیخواهدهرکدامتنهایکبارانجامشوند.امادرانتشار/،عضویت پیامهابههمهمصرفکنندههاارسالمیشود.Kafkaتنهایکانتزاعازمصرفکنندهداردکهگروههایمصرفکننده خواندهمیشودوحالتعمومیتیافتههردومورداست.ممکناستکمیدرموردگروههایمصرفکنندهونحوه عملکردشانصحبتکنید؟ ،بلهفکرمیکنمگروههایمصرفکنندهخیلیجالبهستند.همانطورکهشماگفتیدهردوموردالگوهایکاربردراپوششمیدهد. یکموردایناستکهتنهایکگروهمصرفکنندهداشتهباشیدودرآنچندینمصرفکنندهداشتهباشیدکهمًاشترکیکنوع ازموضوعرامصرفکنند.ًالمثمیتوانیددومصرفکنندهدریکگروهمصرفکنندهداشتهباشیدوامیدداشتهباشیدکهآن ،موضوعبصورتِیمساونصفونصفبینآندومصرفکنندهتقسیمشود.اینروشیبرایافزایشدرجهموازیسازیبین مصرفکنندههااست.موردکابرددیگرآنجااستکهمنطقیکهبرایمصرفوجودداردکمیCPUَربیازمانبرباشد.در اینصورتاگرمصرفکنندههایبیشتریداشته،باشیدمیتوانیدازقدرتCPUومنابعبیشتراستفادهکنیدتاسرعتپردازش دادههاراافزایشدهید.اینیکموردکاربرداست. موردکاربرددیگرایناستکهچندینگروهمصرفکنندهبرروییکموضوعداشتهباشیدکهنوعیمدلچندعضویتیاست.در این،حالتهرگروهمصرفکننده،ایبصورتکاملباهمهدادههایآن،موضوعتغذیهمیشوند.مواردزیادیوجودداردکه نرمافزارهایمختلفمیخواهنددادههاییکسانیرامصرفکنندامابراساسکاربردشانبهروشهایمتفاوتیآنهاراپردازش کنندواینمدل،چندعضویتیروشخیلیقدرتمندیبرایایننرمافزارهابرایمصرفدادههابصورتمستقلازیکدیگراست. درواقعشمامیتوانیددراینمدلچندعضویتیدرهرکدامازاینگروههایمصرفکننده،همچندینمصرفکنندهداشتهباشید تابتوانیدترکیبمزایایچندعضویتیوموازیسازیدرهرکدامازایننمونههایمصرفراداشتهباشید. -چهجنبههایدیگریازارتباطبینتولیدکنندگانومصرف،کنندگانمنحصربهKafkaاست؟ اگرKafkaراباسیستمهایپیامرسانیسنتیًالمثGMSمقایسهکنیدمایکسریچیزهارا،نداریمGMSمجموعهامکانات گستردهایازقبیلتحویلمرتبشده(Ordered Delivery)،اولویت(Priority)و…راداردکهمادرKafkaنداریم. همانطورکهًالقبگفتمKafkaًاواقعبرایحجمباالیدادههاورسیدگیبهآنهابایکروشکاراطراحیشدهاستبههمین خاطرمابسیاریازامکاناتموجوددرسیستمهایپیامرسانیسنتیرانداریم.
16.
16 -بسیار،خوببیاکمیعقببرگردیمتابهصورتخاصدرموردKafkaصحبتکنیم.شمابهمثالهایانتزاعیاز Kafkaاشارهداشتید.شایدبهترباشدبهسراغبرخیکاربردهایمشخصKafkaبرویم.توضیحدهیدکهاگرکسی میخواهدKafkaرامستقرکندچطوراینکارراانجامدادهوبهدیگرمؤلفههامتصلمیکند؟ ازدیدگاهسطحباالاینبهتغییراتدرگرایشاتصنعتبرمیگرددکهپیشازایناشارهکردمیعنیبهخاطروجودویابروز سیستمهایمقیاسپذیرتخصصیمختلفاست.اینسیستمهانیازدارندکهبانوعیکسانیازدادههاتغذیهشوند.ًالمثاگر مجموعهایازدادههایالگداشته،باشیمًاحتممیخواهیدآنهارابرایپردازشبرونخطبهHadoopوارد،کنیداماباهمان درجهازاهمیتمیخواهیدآنرابهسیستمجستجویتاننیزواردکنیدتابتوانیدبا،سرعتهررخدادالگیراجستجوکنید.این تاحدودزیادیهمانمنطقکاریاستکهSplunkانجاممیدهد.بههمینترتیباگرًالمثجریانیازدادههایعملیاتداشته باشیدمیخواهیدکههمآنرابهسیستمبرونخطواردکنیدوهمالبتهآنرابهسیستمبالدرنگمانیتورخودواردکنیدتابتوانید آندادههارامانیتورکردهوازآنهانموداربکشید.حالسئوالایناستکهاینسیستمهای،مستقلدادههایخودراازکجا بیاورند؟شمابهیکنقطهیکپارچهسازینیازداریدکههمهاینسیستمهابتواننددادههایشانراازآنبگیرند.خیلیازآن سیستمهابرخالفHadoopبیشترجنبهبالدرنگدارندبنابرایننمیتوانیدآنهارادرهمانانبارهدادهبرونخطخودیکپارچه کنیدزیراازلحاظتأخیر(Latency)،ممکناستبهمقدارکافیخوبنباشندکهدادههاینرمافزارهایاپلتفرمهایبالدرنگی درارتباطباًالمثجستجوویارسمنمودارراتغذیهکنند.Kafkaبهنوعیایننقشراپرمی،کندزیراسیستمیاستکهدرواقع برایجمعآوریوذخیرهسازیحجمباالیدادهطراحیشدهاستومیتواندهرتعدادنرمافزارپاییندستیراتغذیهکندواین نرمافزارهاهممیتوانندبالدرنگوهممیتوانندبرونخطباشند.بنابراینمیتوانیدآنرابهمثابهیکهابیکپارچهسازیبرای همهاینکالندادههادرنظربگیرید. ازمنظرنحوهبهخدمتگرفتنKafkaمیبینیمکهافرادچیزهایمختلفیرابرمیگزینند.یکیازمواردکاربردرایجایناست کهازKafkaبهعنوانیکخطلولهمصرفاستفادهمیکنندتادادههاراواردHadoopکنند.امادرعینحالیکیاچند نرمافزاربرایکاربردهایبالدرنگهمدارندکهمیتواندیکنرمافزاربالدرنگویایکیازفریمورکهایپردازشجریانباشد ویاگاهیسیستمجستجوییباشدکهبهخدمتگرفتهاند.بهخاطرنیازبهبیشازیککاربردبرایدادههای،یکسانبرایشان خیلیاهمیتداردکهاینخطهایلولهرابهکاربیاندازند.اینیکالگویرایجازنحوهبهخدمتگیریKafkaاستکهما میبینیم.
17.
17 -بیادرموردجنبهدیگریصحبتکنیمکهًالکدرسیستمهایتوزیعشدهوخاصهدرKafkaوجوددارد.میخواهمدر موردمانایی(Durability)صحبتکنم.آیاپیامهادرهنگامازنواجراکردنیابروز،خرابیقابلترمیمهستند؟ خرابیهایمتفاوتیوجوددارد.همانطورکهپیشازایناشارهکردمدرسمتکارگزارپشتیبانیازرونوشتبرداری (Replication)رااضافهکردهایمبنابرایندریک،کالسترپیامهامیتوانندبررویچندینکارگزارتکرارشوند. -آیا،کارگزارمعادلبایکپارتیشنازموضوع(Topic Partition)است؟ کارگزارمانندیکسروریاگرهمیماندکهچندینپارتیشندادهمیتواندبررویآنذخیرهشود.مانندموتوریبرایذخیره پیامهااستودریککالسترمیتوانیمچندینعددازاینموتورهایذخیرهسازیداشتهباشیمامارونوشتهاییکموضوعبین اینموتورهایذخیرهسازیپخشمیشوندوهرکدامازاینموتورهایذخیرهسازییاکارگزارهاًاعمومچندینپارتیشنراذخیره میکنند.البتههرکدامازاینپارتیشنهامتناظربایکدایرکتوریفایلمحلیهستندومجموعهفایلهایخودشانرادارندونوعی ِیمجزاسازدرسطحدیسکوجوددارد. ازلحاظقابلیت،اطمیناناگریکموضوع(Topic)راطوریتنظیمکنیدکهچندینرونوشتداشتهباشددرآنصورتمیتواند خرابیهایکارگزارراتحملکند.خرابیمعمولدرKafkaنوعیازخرابیاستکهماآنراخرابینرممینامیمبهاینترتیب کهدرواقعکارگزارسالماستوتنهامیخواهیدکهکدجدیدیرامستقرکنیدیاتغییریدرتنظیماتاعمالکنیدوبههمینخاطر بایدیکیازکارگزارهایاهمهکارگزارهایکالسترراپایینبیاوریدوآنهاراازنواجراکنید.درواقعاین8۰یا9۰درصداز مواردخرابیدرکالسترKafkaاست.بارونوشتبرداریمیتوانیمچنینخرابیهاییرابصورتخیلیکاراییرسیدگیکنیم.ما امکانیداریمکهبصورتخودکارپیشواییکپارتیشنرابهرونوشتدیگریمنتقلکنیمودراین،حالتکالینتهابههمانشکل قبلرفتارمیکنند. -بیاکمیبهموضوعنحوهتوسعهKafkaبپردازیم.چرازبان،انتخابیScalaبودهاست؟آیاًامشخصErlangراهم درنظرداشتید؟ فکرمیکنمجیکرپساولینتوسعهدهندهKafkaبود.آن،موقعScalaتاحدیمحبوبشدهبودواوشایدمیخواست ScalaرایادبگیردوبهاینخاطربودکهScalaراانتخاب،کردبهنوعیمیخواستهآنراامتحانکندوببیندچطورکارمیکند. ازدیدگاهیکتوسعهدهندههموارهجذاباستکهیکزبانبرنامهنویسیجدیدوپرآتیهراامتحانکنیم.درموردScalaفکر میکنمآنچهازآنبهرهزیادی،بردیمموجزبودننحو(Syntax)آنبود.وهمینطورازپشتیبانیهایزیادیکهبرای عملکردهایرویمجموعهها(Collection)داشتواجازهمیدادکهدورزدنبررویآنهاراخیلیراحتانجام،دهیم
18.
18 استفادهکردیم.بههمینخاطراستکهاگربهکدهایKafkaنگاهکنیدبهنسبتسیستمهایمشابهیکهباجاوانوشتهشده ،استماازنحوموجزآنبهرهزیادیبردهایم. امایکیازچیزهاییکهکمیکارباScalaرادشوارمی،کرددرارتباطبامشتریانبود.ازآنجاییکهScalaیکتکنولوژیدر حالظهور،استًالمثازلحاظحفاظتازسازگاری،باینریبهاندازهJavaبالغنیستوچوندرریلیزهایابتداییخودقراردارد مجبورمیشودکهسازگاریباینریهارانقضکندوبرخیازبایتکدهاییکهبانسخههایقبلیScalaتولیدشدهاندرانمیتوان بانسخههایجدیدترScalaاجراکرد.اینمشکالتیبرایبروزرسانی[نسخههایمحصول]مشتریهایمانایجادمیکند.چون خیلیازمشتریهایماکهبهخاطراستفادهازKafkaبهScalaوابستگیدارندممکناستدرعینحالازمؤلفههایدیگری هماستفادهکنندکهآنهاهمبهScalaوًالاحتمانسخهدیگریاز،آنوابستهباشد.بنابرایناگرایننسخههایScalaباهم سازگارنباشندبروزرسانیبرایچنینمشتریهاییخیلیدردسرسازمیشود.اینیکیازچیزهاییاستکهدرارتباطباScala کمیکاررادشوارکردهاست.ماتالشکردیمبرایحلاین،مشکلمؤلفههایسمتکالینتراباجاوایخالصبنویسی،مبهاین ترتیبمیتوانیمدرعینحالیکهتاحدممکنازمزیتموجزبودننحوScalaبهره،ببریمبروزرسانیکالینتهاراهمخیلی سادهترکنیم. -ازاینکهبهSE Radioآمدیدخیلیمتشکرم.خوشحالشدیم. خیلیممنونم.
19.
19 منابع http://se-topics.ir/topicview?id=48 https://www.dotnettips.info/post/2822 http://www.bdbanalytics.ir https://chistio.ir
Download now