Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) · Pelajaran

Tetingkap dan Pengagregatan Berkeadaan dalam Kafka Streams

Pelajari cara melakukan pengagregatan berdasarkan tetingkap masa dan mengurus stor keadaan dalam Kafka Streams untuk mengira kiraan, jumlah dan metrik semasa merentas aliran peristiwa.

Pelajaran 4 daripada 413 langkah

Tetingkap dan Pengagregatan Berkeadaan dalam Kafka Streams ialah pelajaran Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka), dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) merangkumi sejumlah 4 pelajaran.

Berkeadaan lwn. Tanpa Keadaan

Operasi seperti map dan filter adalah tanpa keadaan. Pengagregatan seperti pengiraan atau penjumlahan memerlukan keadaan yang kekal merentasi rekod.

Kafka Streams mengurus keadaan ini untuk anda dalam gedung keadaan setempat.

Mengumpulkan Strim

Sebelum melakukan pengagregatan, kumpulkan rekod mengikut kunci dengan groupByKey atau groupBy.

KGroupedStream<String, Order> grouped =
    orders.groupBy((key, order) -> order.getCustomerId());

Mengira bagi Setiap Kunci

Contoh pengagregatan mudah: kira pesanan bagi setiap pelanggan. Hasilnya ialah KTable yang disokong oleh gedung keadaan.

KTable<String, Long> counts = grouped.count();

Pengagregatan Umum

Gunakan aggregate untuk pengumpulan tersuai. Anda membekalkan fungsi pemula dan fungsi penambah.

KTable<String, Double> totals = grouped.aggregate(
    () -> 0.0,
    (key, order, sum) -> sum + order.getAmount());

Memperkenalkan Tetingkap

Selalunya anda memerlukan pengagregatan dalam tetingkap masa, contohnya pesanan dalam 5 minit terakhir. Kafka Streams menyokong tetingkap bergelung, tetingkap melompat dan tetingkap sesi.

Tetingkap Bergelung

Tetingkap bergelung mempunyai saiz tetap dan tidak bertindih. Setiap rekod tergolong dalam tepat satu tetingkap.

grouped
  .windowedBy(TimeWindows.ofSizeWithNoGrace(Duration.ofMinutes(5)))
  .count();

Tetingkap Melompat

Tetingkap melompat mempunyai saiz dan jarak kemajuan yang lebih kecil, lalu bertindih. Satu rekod boleh berada dalam beberapa tetingkap.

TimeWindows.ofSizeAndGrace(Duration.ofMinutes(5), Duration.ofSeconds(30))
           .advanceBy(Duration.ofMinutes(1));

Tetingkap Sesi

Tetingkap sesi mengumpulkan rekod yang dipisahkan oleh jurang ketidakaktifan — sesuai untuk sesi pengguna yang mempunyai lonjakan aktiviti kemudian berhenti seketika.

grouped
  .windowedBy(SessionWindows.ofInactivityGapWithNoGrace(Duration.ofMinutes(10)))
  .count();

Toleransi Kerosakan Gedung Keadaan

Gedung keadaan disokong oleh topik log perubahan yang dipadatkan dalam Kafka. Jika satu tika gagal, keadaannya dibina semula daripada log perubahan pada tika lain.

Membuat Pertanyaan Keadaan Secara Interaktif

Interactive Queries membolehkan anda membaca nilai gedung keadaan secara terus daripada aplikasi, lalu mendedahkan pengagregatan melalui titik akhir REST tanpa pangkalan data luaran.

ReadOnlyKeyValueStore<String, Long> store =
    streams.store(StoreQueryParameters.fromNameAndType(
        "counts", QueryableStoreTypes.keyValueStore()));

Menggabungkan Semuanya

Pengagregatan berkeadaan berasaskan tetingkap menukarkan strim peristiwa mentah kepada metrik langsung. Kumpulkan mengikut kunci, pilih jenis tetingkap, lakukan pengagregatan dan, jika perlu, dedahkan keadaan melalui pertanyaan interaktif.

Semakan Pantas

Uji pemahaman anda tentang penggunaan tetingkap.

Imbas Kembali

Anda telah mempelajari penggunaan tetingkap dan pengagregatan berkeadaan.

  • Kumpulkan dengan groupByKey sebelum melakukan pengagregatan.
  • Gunakan count atau aggregate untuk membina KTable.
  • Tetingkap bergelung, melompat dan sesi mengendalikan masa dengan cara yang berbeza.
  • Gedung keadaan mempunyai toleransi kerosakan melalui topik log perubahan.
Percuma untuk bermula

Pelajari Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Tetingkap dan Pengagregatan Berkeadaan dalam Kafka Streams” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka), termasuk “Tetingkap dan Pengagregatan Berkeadaan dalam Kafka Streams”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Tetingkap dan Pengagregatan Berkeadaan dalam Kafka Streams”?

Pelajari cara melakukan pengagregatan berdasarkan tetingkap masa dan mengurus stor keadaan dalam Kafka Streams untuk mengira kiraan, jumlah dan metrik semasa merentas aliran peristiwa. Anda berlatih Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka)?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Tetingkap dan Pengagregatan Berkeadaan dalam Kafka Streams” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) ini?

Ya. Setiap pelajaran Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pengenalan kepada Kafka Streams
  2. Pemprosesan Strim dengan KStream & KTable
  3. Membina Aplikasi Strim Ringkas
  4. Tetingkap dan Pengagregatan Berkeadaan dalam Kafka Streams
← Kembali ke Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka)