Kenapa Kafka? Apa keseluruhan tayangan Anda? Apa komposisi cluster? Di bawah potongan - selusin pertanyaan pendek untuk Levon Avakyan, yang bertanggung jawab atas keandalan, arsitektur aplikasi, infrastruktur dan produksi di Wargaming.
- Bagaimana Anda memilih Kafka? Apa yang digunakan sebelumnya? Alternatif apa yang dipertimbangkan?Bukan pertanyaan yang sangat benar terkait dengan pengembangan tangki. Apache Kafka sudah digunakan di perusahaan untuk kebutuhan Gudang Data kami, dan awalnya ada tugas integrasi, dan baru kemudian kami melihat bahwa Kafka dapat digunakan untuk tugas yang berbeda.
- Berapa banyak acara yang dihasilkan oleh kluster game Anda?Cluster tangki adalah cluster cluster, sistem didistribusikan dan menghasilkan peristiwa dalam Kafka yang berbeda. Semua cluster menghasilkan rata-rata 12 ribu pesan, pada puncaknya sekitar 30 ribu pesan per detik.
- Dan berapa banyak cluster yang Anda miliki dan apa komposisinya?Cluster sentral terbesar terdiri dari lima simpul besi. Cluster yang lebih kecil yang hanya melayani periferal tangki masing-masing sekitar tiga node plus mesin virtual. Kami memiliki empat cluster lokal untuk wilayah CIS.
- Berapa banyak produsen dan konsumen Anda? Berapa tarif baca / tulis?Pertanyaan yang bagus Untuk perangkat lokal Kafka, produsennya adalah satu - satu kelompok tangki, dan ada banyak konsumen. Dengan tarif: hingga 75 ribu pesan per detik ditulis pada cluster pusat, rata-rata 12 ribu, pada pesan lokal hingga tujuh ribu dan rata-rata tiga ribu.
- Seberapa besar acara yang Anda tulis di Kafka? Apakah ada batasan waktu pengiriman?Batasi 1 MB - tidak ada yang bertanya. Ada batasan waktu pengiriman untuk beberapa konsumen, untuk beberapa tidak. Beberapa membaca seminggu sekali.
- Apakah Anda menemukan fitur dan bug yang menarik saat sharding atau replikasi?Menghadapi kehilangan data selama pemilihan ulang karena pengaturan topik. Pemilihan ulang yang kotor diizinkan dan ISR yang salah dipilih.
- Dan apakah itu terjadi pada disk atau jaringan?Mereka tidak beristirahat di jaringan, kami memiliki antarmuka jaringan 10 Gb. Mereka tidak bersandar pada disk juga. Beristirahat di deskriptor file yang sudah selesai. Stabilitas muncul setelah peningkatan dari java-1.7.0-openjdk-1.7.0.55-2.4.7.1.el6_5.x86_64 ke jdk1.8.0_66-1.8.0_66-fcs.x86_64.
- Apa overhead yang dibawa JVM dengan Kafka? Apakah pengaturan khusus gc diperlukan? Berapa banyak memori yang dikonsumsi oleh satu instance dalam kasus Anda?12 GB memori dialokasikan, semuanya standar.
- Apakah Anda harus menggunakan fitur khusus Kafka? Log Pemadatan?Pemadatan Log Bekas untuk beberapa topik, tetapi tidak untuk proyek World of Tanks. Termasuk pada topik tertentu, tetapi hasilnya tidak jelas, tidak ada yang memberi umpan balik. Risalah offset. Risalah juga ditingkatkan hingga tujuh hari, sehingga petugas yang membaca sekali seminggu terus membaca dari tempat mereka berhenti.
- Pustaka Python apa yang digunakan untuk bekerja dengan Kafka? Apa yang kamu sukaSalah satu
laporan saya tentang Moscow Python Conf ++ adalah tentang pengalaman menggunakan berbagai pustaka Python untuk Kafka di WoT. Aset kami adalah Kafka-python, confluent-kafka-python, aiokafka. Masing-masing perpustakaan memiliki pro dan kontra.
- Apa yang akan Anda katakan tentang kelebihan dan kekurangan penyimpanan berbasis file dibandingkan dengan di-memori? Untuk jenis tugas apa yang bisa Anda rekomendasikan satu atau yang lain?Di sini prinsipnya sederhana. Pada sistem file itu lebih dapat diandalkan, tetapi lebih lambat. Memori lebih cepat, tetapi keandalannya lebih rendah. Plus, batasan penting dalam volume: Anda dapat menyimpan terabyte dalam sistem file, tetapi kami masih menggunakan gigabytes dalam memori. Dari sini Anda dapat berfantasi banyak, mulai dari implementasi tertentu.
Berdasarkan hal di atas: jika Anda perlu cepat, volumenya kecil dan keamanannya tidak penting, maka dalam memori, kalau tidak kita lihat file-based.
- Kesan umum Kafka? Jika Anda melakukan tugas yang sama sekarang, apakah Anda akan meninggalkan Kafka atau mencari solusi lain?Kafka adalah alat yang baik dan sederhana untuk menyediakan akses dari luar ke sejumlah besar data, yang kemudian dapat diproses secara perlahan untuk tujuan yang berbeda, oleh tim yang berbeda di tempat yang berbeda. Di WoT, kami memiliki banyak alat yang berbeda untuk menyelesaikan masalah kami, jadi di tempat yang tepat untuk memilih Kafka, kami memilih Kafka, di mana tidak, kami melihat alat lain.
Sekali lagi, jika Anda tertarik pada detail pengalaman kami dengan Kafka, datanglah ke ceramah saya di
Moscow Python Conf ++ . Saya berharap banyak yang menganggapnya menarik dan bermanfaat.