لماذا كافكا؟ ما هي انطباعاتك العامة؟ ما هو تكوين العناقيد؟ تحت القطع - عشرات الأسئلة القصيرة لـ Levon Avakyan ، المسؤول عن الموثوقية ، وبنية التطبيقات ، والبنية التحتية والإنتاج في Wargaming.
- كيف اخترت كافكا؟ ما تم استخدامه من قبل؟ ما البدائل التي تم النظر فيها؟ليس سؤالًا صحيحًا جدًا فيما يتعلق بتطوير الخزان. تم استخدام Apache Kafka بالفعل في الشركة لتلبية احتياجات مستودع البيانات الخاص بنا ، وفي البداية كانت هناك مهمة تكامل ، وعندها فقط رأينا أنه يمكن استخدام Kafka في مهام مختلفة.
- كم عدد الأحداث التي تم إنشاؤها بواسطة مجموعة اللعبة الخاصة بك؟كتلة الخزان هي مجموعة من المجموعات ، يتم توزيع النظام ويولد الأحداث في كافكا مختلفة. تولد جميع المجموعات ما معدله 12 ألف رسالة ، في ذروتها حوالي 30 ألف رسالة في الثانية.
- وكم مجموعات لديك وما هو تكوينها؟يتكون أكبر كتلة مركزية من خمس عقد حديد. العناقيد الصغيرة التي تخدم الأجهزة الطرفية للدبابات فقط هي حوالي ثلاث عقد لكل منها بالإضافة إلى الأجهزة الافتراضية. لدينا أربع مجموعات محلية لمنطقة رابطة الدول المستقلة.
- كم عدد المنتجين والمستهلكين أنت؟ ما هي معدلات القراءة / الكتابة؟سؤال جيد. بالنسبة إلى كافكا الطرفية المحلية ، فإن المنتج واحد - مجموعة دبابات ، وهناك العشرات من المستهلكين. بحسب المعدلات: يتم كتابة ما يصل إلى 75 ألف رسالة في الثانية على المجموعة المركزية ، في المتوسط 12 ألفًا ، على الرسائل المحلية حتى سبعة آلاف ومتوسط ثلاثة آلاف.
- كيف تكتب الأحداث الكبيرة في كافكا؟ هل هناك أي حدود زمنية للتسليم؟الحد 1 ميغابايت - لم يطلب أحد آخر. هناك قيود على وقت التسليم لبعض المستهلكين ، والبعض الآخر لا. يقرأ البعض مرة في الأسبوع.
- هل واجهت أي ميزات وأخطاء مثيرة للاهتمام عند التقسيم أو التكرار؟واجه فقدان البيانات أثناء إعادة الانتخاب بسبب إعدادات الموضوع. تم السماح بإعادة الانتخاب القذرة وتم اختيار ISR الخطأ.
- وهل حدث للراحة على قرص أو شبكة؟لم يرتاحوا على الشبكة ، لدينا 10 واجهات شبكة اتصال. لم يرتاحوا ضد القرص أيضًا. تقع على واصفات الملفات النهائية. جاء الاستقرار بعد ترقية من java-1.7.0-openjdk-1.7.0.55-2.4.7.1.el6_5.x86_64 إلى jdk1.8.0_66-1.8.0_66-fcs.x86_64.
- ما النفقات العامة التي تحضرها JVM مع كافكا؟ هل يتطلب إعداد gc الخاص؟ ما مقدار الذاكرة التي يستهلكها مثيل واحد في قضيتك؟يتم تخصيص 12 جيجا بايت من الذاكرة ، وكل شيء آخر قياسي.
- هل كان عليك استخدام أي ميزات خاصة لكافكا؟ ضغط سجل؟استخدام ضغط السجل لبعض المواضيع ، ولكن ليس لمشروع World of Tanks. تم تضمينه في مواضيع محددة ، ولكن النتيجة ليست واضحة ، ولم يعط أحد تعليقات. تم أيضًا زيادة Offsets.retention.minutes حتى سبعة أيام ، بحيث استمرت الكونسيرج التي تقرأ مرة واحدة في الأسبوع في القراءة من حيث توقفت.
- ما مكتبات بيثون التي تم استخدامها للعمل مع كافكا؟ ماذا تحبين؟واحد فقط من
تقاريري حول موسكو Python Conf ++ سيكون حول تجربة استخدام مكتبات Python المختلفة لـ Kafka في WoT. أصولنا هي Kafka-python ، confluent-kafka-python ، aiokafka. كل من هذه المكتبات لها إيجابياتها وسلبياتها.
- ما الذي تقوله عن مزايا وعيوب التخزين المستند إلى الملفات مقارنة بالذاكرة؟ ما أنواع المهام التي يمكنك أن توصي بها واحدة أو أخرى؟هنا المبدأ بسيط. على نظام الملفات هو أكثر موثوقية ، ولكن أبطأ. الذاكرة أسرع ، ولكن الموثوقية أقل. بالإضافة إلى ذلك ، هناك قيود مهمة في الحجم: يمكنك تخزين تيرابايت في نظام الملفات ، لكننا ما زلنا نستخدم غيغابايت في الذاكرة. من هنا يمكنك تخيل الكثير ، بدءًا من تنفيذ معين.
بناءً على ما سبق: إذا كنت بحاجة إلى ذلك بسرعة ، فإن الحجم صغير والسلامة غير مهمة ، ثم في الذاكرة ، وإلا فإننا ننظر إلى الملف.
- انطباعات عامة عن كافكا؟ إذا كنت ستقوم بنفس المهمة الآن ، فهل ستترك كافكا أو تنظر في اتجاه الحلول الأخرى؟Kafka هي أداة جيدة وبسيطة لتوفير الوصول من الخارج إلى كميات كبيرة من البيانات ، والتي يمكن بعد ذلك معالجتها ببطء لأغراض مختلفة ، من قبل فرق مختلفة في أماكن مختلفة. في WoT ، لدينا العديد من الأدوات المختلفة لحل مشاكلنا ، لذلك عندما يكون من المناسب اختيار Kafka ، نختار Kafka ، حيث لا ، ننظر إلى أدوات أخرى.
مرة أخرى ، إذا كنت مهتمًا بتفاصيل تجربتنا مع كافكا ، فتحدث إلى
موسكو Python Conf ++ . آمل أن يجدها الكثير من المثير للاهتمام والمفيد.