Halo, Habr! Latar belakang informasi yang positif tentang topik penanganan acara melalui Kafka Streams terbentuk di sekitar saya. Alat ini menarik banyak laporan video dan artikel tentang Habré, dokumentasi mendetail, API yang dapat dimengerti, dan arsitektur yang indah. Beberapa teman dan kolega saya menggunakannya untuk mengembangkan sistem mereka. Tetapi apa yang terjadi dalam kehidupan nyata ketika sistem ini mulai berproduksi?
Pada artikel ini, saya akan menghilangkan pengantar Kafka Streams, dengan asumsi bahwa pembaca sudah mengenalnya, dan saya akan berbicara tentang pengalaman kita hidup dengan perpustakaan ini pada contoh sistem yang cukup dimuat.
Secara singkat tentang proyek
Sebuah tim internal bersama dengan mitra mengerjakan Ad Exchange, yang membantu menjual kembali lalu lintas iklan. Kami telah menjelaskan secara spesifik alat-alat tersebut dalam sebuah artikel di Habré . Seiring dengan bertambahnya jumlah mitra antara SSP dan DSP, beban pada server pertukaran meningkat. Dan untuk meningkatkan nilai pertukaran itu sendiri, kami harus mengumpulkan analitik terperinci dari lalu lintas ini. Di sinilah kami mencoba menggunakan Kafka Streams.
Menerapkan alat baru dalam produksi Anda selalu berisiko. Kami menyadarinya, tetapi menahannya, karena secara umum, Kafka Streams secara konseptual harus cocok untuk menghitung agregat. Meskipun kesan pertama sangat bagus, saya akan berbicara tentang masalah yang menyebabkannya.
, , . , - Kafka Streams. .
. , , - . , " ". , : , , ..
Kafka Streams: groupBy aggregate . , : changelog-. Kafka log compaction. ?
, , Kafka Streams repartition-, , changelog-. , " " UUID. ? , , repartition-. Kafka. , ?
, 100 . +600 (300 300 ). . Kafka Streams. , .
, , . Kafka Streams. - . , "" , Kafka Streams . / repartition-. , , . , .. , . - ( , ).
, . . . , Kafka Streams, . state-store RocksDB ( ), .
, , , - , . . , , - , , all(), . , . . , RocksDB Postgres.
, . , , HTTP? - Kafka Streams: , - . - . , - . . . ? Kafka Streams , .
Kafka Streams
. , , , . - Kafka, Kafka Streams DEAD , . , Kafka Spring @KafkaListener. , .
Kafka Streams : . , - Kafka Streams. . , . - . , - , . - Kafka Streams . : , Kafka Streams. " " , , .
Kafka Streams , watchdog: Kafka Streams, , .
, Kafka Streams Spring, StreamsBuilderFactoryBean, CleanupConfig. , RocksDB. , , changelog-. , .
KStream-KStream Join
: . Kafka . . , production.
Kafka Streams . , , DevOps . , .
, Kafka, , - : " ? ". . Kafka Streams.
, - (co-partitioning), , , , . ?
, : , , . production, , . , , , . Kafka Streams . , . Kafka Streams , -, .
, , . , Kafka Streams, , Kafka Streams . : Matthias J. Sax , , Kafka Streams application.id. , , , .
, . . , , - KSQL.
: , .
P.S. . VK, FB, Instagram Telegram-, Maxilect.