Там вийшла нова версія кафки. І загалом мені не сильно цікаві більшість цих покращень, бо мій досвід з кафкою це поклав-забрав і нічого більше. 🤔
Але в цьому релізі було додано офіційні докер імеджі з кафкою, яку скомпілювали в нативний код за допомогою GraalVM. Ідея GraalVM в тому, що вони компілють Java код в нативний бінарник ahead of time (AOT), замість компіляції на льоту (JIT) як з JVM варіантом.
В оригінальному KIP-974 є отакі спостереження про GraalVM кафку:
- The startup time of the GraalVM broker is ~1/9th of the startup time of the JVM broker.
- No CPU spike is observed for GraalVM broker but JVM broker had sudden spikes both when the broker started and also when the load testing started.
- Considerable difference in memory usage is observed as well. For JVM broker the max memory usage went up to ~1GB as compared to the ~500MB in case of GraalVM broker with G1GC and ~250MB in case of GraalVM broker with serial GC.
Чому це цікаво для мене? Бо я ще рік тому шукав як на своєму ноуті можна змусити кафку працювати швидше і їсти менше памʼяті. А тут прям в motivation написано саме те, що я й шукав:
Existing Java-based Kafka brokers take a few seconds to startup. Although it is not affecting the criticality of long-running brokers in production workloads, it annoys developers instantiating hundreds of brokers for unit testing their applications during local development.
This KIP aims to deliver an experimental Apache Kafka docker image that can launch brokers with sub-second startup time and minimal memory footprint by leveraging a GraalVM based native Kafka binary and runs in the Kraft mode.
Я вже спробував цей імедж локально і виглядає дійсно, що кафка запускається за долі секунди 🏃 Піду ще спробую позбутися zookeper, щоб локально в мене був один маленький красивий kafka сервер.