Mohammed Ragab
Mohammed Ragab

@rgbdev

17 تغريدة 4 قراءة Jul 24, 2022
ثريد عن كافكا عشان الناس إلى بتستعمله عمال على بطال
مبدئيا هل انت محتاج كافكا ؟
عشان تجاوب على السؤال دا اعرف كافكا شغال ازاى ناس كتير جدا بتخلط ما بين كافكا وما بين كافكا كلاينتس ال clients بتختلف من لغة التانية مثال فى nodejs عاملين event driven client بحيث أنه ليظهر قدامك
أن كافكا دا شغال subscribers ودا مش حقيقى كافكا consumer / producer يعنى انت كل شوية بتعمل poll عشان تشوف فيه مسج تخصك ولا لأ بناءا على ال consumer group بتاعك فلو فاكر أن كافكا pub / sub فانت كدا مذاكر lib معينة مش كافكا ، طيب كافكا event streaming ودا مفهوم مختلف شوية عن ال MQ
فلو معندكش use case لل event streaming زى مثلا data analytics أو data pipelining أو عندك event streaming معقد بيهندل intensive data فكدا ممكن تدخل فى خيارات بئا زى كافكا وفلنك وإخواتهم وطبعا فيه خلط ما بين ال event sourcing إلى موجود فى DDD وما بين ال event streaming إلى فى ال
ال internet application فشوف لو شغال ميكروسيرفسس أو DDD عامل saga عندك event sourcing أو transactional outbox الخ كل دى حلول كافكا مش لازم يكون involved فيها تقدر تستخدم فيها داتا بيس مع light weight MQ وتبنى ال state store بتاعك بدون وجع دماغ ، طيب خلاص عندك ال use case بتاعت
كافكا أو اباتشى فلنك أو غيره ساعتها بردوا هتقرر الأول لو مثلا ال streaming دا managed by dev team اختار كافكا لو by data team فالافضل هنا فلنك ، طيب اختارت كافكا خلاص تعالى نشوف كافكا كاركتكتشر شغال ازاى عشان نفهم هو هديك ايه عشان اتفقنا قبل كدا منصدقش كلام البياعين
فى الأنظمة الموزعة فيه الجوريثم كتير جدا يتحكم تحقيق ٣ اغراض وهما consistency , availability , partion
tolerance
اها عارفها دول بتوع ال CAP theorem لا مش شرط خلينى اوضحلك الاول ال CAP theorem قاعدة ليها اثبات رياضى وزى ماعارفين أن الرياضيات تعنى الدقة فلما تيجى تحط حل وتقول
دا ليحقق المعادلة دى يبئا لازم تكون دقيق ودا إلى بيخلى كلام البياعين مش دقيق مثال اغلب الداتا سيستمز مش بتحقق ال CA مع بعض مع أن النظرية بتقول ينفع لكن فى الواقع اغلب الداتا سيستمز إلى بتقول على نفسها كدا اونطة هى بتحقق دا فعلا بس مش على شرط ال CAP theorem بمعنى أن Consistency
فى ال CAP ليها مفهوم مختلف وخصوصى وهو linearizablity ودا ببساطة مع أنه مش بسيط دا شرط تصحيح بيحدد ايه ال out put إلى المفروض تكون متاحة لما الاوبجكت يكون متاح لأكتر من بروسيس متوازية يعنى ببساطة دا بيضمن ويتاكد أن مفيش نتيجة غير متوقعة أو مقدرش امسكها فى الحالة دى فى الأنظمة
الموزعة انت لو عايز تضمن الليفل دا من ال consistency محتاج لو عندك node fault مبتردش السيستم هيبطل read writ لحد ما النتورك تتعدل ودا ياسيدى ضد ال CAP availability إلى المفروض أن النظام يقدر يكمل فى حالة أن لو جزء من النتورك وقع المهم دا كان توضيح عشان لما البياع يقولك انا بديك
Consistency تعرف من اى اتجاه ، طيب كافكا بديينا ايه kafka بيدينا consistency بس مش على شرط ال CAP theorem لأن لكن ليحقق لنا ليفل معقول منها بس مش لحاله لازم ال topics بتاعتك تكون configured correctly بمعنى أن عشان تحقق دا لازم يكون عندك 3 nodes كل واحدة منها عليها بروكر لو حاطط
نود واحدة على 3 بروكرز اشترى سندوتش شاورما احسن طيب بعد كدا محتاج تخلى ال replication 3 بحيث أن المسج بتاعك كافكا يحاول يكتبها على كل ال replica إلى عندك بس كدا لأ لسه محتاج شئ مهم جدا وهو تحديد ال min ISR ودا بتقول لكافكا كام ريبلكا in sync على التوبك دا ودى هتخليها 2 عشان
مينفعش يكون عندك كل ال replica in sync كدا مش هتقدر تكتب طيب دا يسيدى وظيفتها أنها تضمن أن كافكا قبل ما يرد عليك أن المسج راحت يكون حطها فى ال leader broker وريبلكا كمان على الأقل ودا ليفل كويس لو حظ حلو واتنين نود موقعوش مع بعض فى الحالة دى بيكون cluster unvalilabe
وانت بتبعت الداتا بتاعك تقدر تحدد ال aka لو انت شغال على توبك ال consistency مش لهم من ال availability ممكن تخلى aka 0 ودا fire and forget لو ال consistency عندك أهم بكتير جدا جدا ومش محتاج availability ممكن aka all بس انا فى الحالة دى افضلك حاجة غير كافكا اصلا ، اعمل aka 1 فى
أغلب ال cases , طيب هل كافكا partition tolerance كافكا لحد النهاردة بيستخدم request router وهو zookeeper فلو ال zookeeper single point of failure فكدا لأ لكن انت ممكن تعمل مع كل نود زوكيبر ، بس فيه paper بتقول أنهم ناويين يشيلو زوكيبر من الاركتكتشر بس دا كلام من سنتين
هل كافكا ينفع يبئا بديل الداتا بيس على الرغم من أنه بيستخدم داتا بيس لكن لأ قولا واحدا مينفعش ولو عملت كدا هتركب الزوحليقة خلاصة القول فى الثريد دى متصدقش كلام البياعين ، متذاكرش النوعية دى من التكنولوجيس مذاكرة تخاطيفى إلى هو تشوف هتستعملها ازاى وخلاص لا كدا هتلبس هعمل ثريد تانى
ثريد تانى عن افضل الحلول فى ترتيب ال topics والداتا جوا كافكا طبقا لحالات البزنس المتاحة
@ahmedash95 @AlaaAttya @sameh_deabes بما اننا جبنا سيرة إلى ما يتسمى :D

جاري تحميل الاقتراحات...