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

Penyahsiriatan dan Penukaran Mesej

Konfigurasikan penyahsiri untuk pelbagai format mesej seperti String, JSON dan objek tersuai, serta kendalikan penukaran mesej dalam pendengar anda.

Pelajaran 3 daripada 411 langkah

Penyahsiriatan dan Penukaran Mesej ialah pelajaran Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) percuma di CoddyKit. Ini ialah pelajaran 3 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.

Mesej Mentah Kafka

Kafka tidak mengambil kira format data anda. Kafka menganggap setiap mesej sebagai tatasusunan bait mentah. Beginilah mesej disimpan dan dihantar.

Apabila pengeluar menghantar mesej, mesej itu terlebih dahulu ditukar kepada bait. Apabila pengguna menerima mesej tersebut, mesej itu masih sekadar sekumpulan bait.

Fleksibiliti ini membolehkan Kafka mengendalikan apa-apa jenis data, tetapi ini bermakna pengguna memerlukan cara untuk mentafsir semula bait tersebut kepada format yang boleh digunakan.

Daripada Bait kepada Objek: Penyahsirian

Untuk memahami mesej Kafka dalam aplikasi Java anda, anda perlu menukar bait mentah ini kembali kepada objek Java yang bermakna. Proses penting ini dipanggil penyahsirian.

Penyahsir ialah komponen khusus yang mengetahui cara membaca tatasusunan bait dan membina semula objek Java daripadanya. Anggaplah ia sebagai proses terbalik bagi pensirian.

Tanpa penyahsirian yang betul, pengguna anda hanya akan melihat byte[], yang tidak begitu berguna untuk logik aplikasi.

Penyahsirian String Lalai

Spring untuk Apache Kafka menyediakan nilai lalai yang munasabah untuk membantu anda bermula dengan cepat. Jika anda tidak menentukan sebaliknya, ia menganggap kunci dan nilai mesej anda ialah rentetan mudah.

Di sebalik tabir, ia menggunakan org.apache.kafka.common.serialization.StringDeserializer untuk menukar bait mesej kepada objek Java String.

Ini berfungsi dengan sempurna untuk mesej teks biasa, tetapi kebanyakan aplikasi dunia sebenar sering perlu mengendalikan data yang lebih berstruktur.

Kod: Pengguna String Mudah

Berikut ialah aplikasi Spring Boot asas dengan pendengar Kafka yang menggunakan mesej rentetan mudah. Perhatikan jenis String dalam tandatangan kaedah pendengar.

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;

@SpringBootApplication
public class SimpleConsumerApp {
  public static void main(String[] args) {
    SpringApplication.run(SimpleConsumerApp.class, args);
    System.out.println("String consumer app started, listening on my-string-topic...");
  }

  @Component
  static class MyStringListener {
    @KafkaListener(topics = "my-string-topic", groupId = "string-group")
    public void listen(String message) {
      System.out.println("Received String: " + message);
    }
  }
}

Mengkonfigurasi Penyahsir Secara Eksplisit

Anda boleh mengkonfigurasi penyahsir yang hendak digunakan secara eksplisit dalam fail application.properties atau application.yml. Hal ini memberitahu Spring Kafka kelas yang hendak digunakan untuk menukar bait bagi kunci dan nilai mesej.

  • spring.kafka.consumer.key-deserializer
  • spring.kafka.consumer.value-deserializer

Untuk contoh rentetan lalai kita, kedua-duanya akan ditetapkan kepada org.apache.kafka.common.serialization.StringDeserializer.

Bekerja dengan Data JSON

JSON (JavaScript Object Notation) ialah format yang digunakan secara meluas untuk bertukar-tukar data berstruktur. Mesej Kafka sering membawa data dalam format JSON.

Untuk menggunakan mesej JSON dengan berkesan dalam aplikasi Java anda, anda perlu menukar rentetan JSON (atau bait) yang masuk kepada objek Java, biasanya Plain Old Java Object (POJO).

Pemetaan ini membolehkan anda mengakses medan data dengan mudah secara terus, seperti myObject.getId() atau myObject.getName(), tanpa menghuraikan JSON secara manual.

JsonDeserializer Spring

Spring untuk Apache Kafka menyediakan org.springframework.kafka.support.serializer.JsonDeserializer yang berkuasa untuk memudahkan pengendalian mesej JSON.

Penyahsir ini memanfaatkan pustaka Jackson yang popular untuk memetakan bait JSON yang masuk secara automatik kepada kelas Java POJO yang anda tentukan.

Anda hanya perlu mengkonfigurasikannya supaya mengetahui jenis POJO yang dijangkakan, lalu ia akan mengendalikan penukaran kompleks untuk anda.

Kod: Mentakrifkan POJO Peristiwa

Mula-mula, mari kita takrifkan POJO Java mudah yang akan mewakili data JSON yang masuk. Sifat POJO ini hendaklah sepadan dengan medan dalam mesej JSON anda.

package com.coddykit;

// MyEvent.java
public class MyEvent {
    private String id;
    private String description;

    // Default constructor is crucial for deserialization
    public MyEvent() {}

    public MyEvent(String id, String description) {
        this.id = id;
        this.description = description;
    }

    // Getters and Setters (omitted for brevity, but needed)
    public String getId() { return id; }
    public void setId(String id) { this.id = id; }
    public String getDescription() { return description; }
    public void setDescription(String description) { this.description = description; }

    @Override
    public String toString() {
        return "MyEvent{id='" + id + "', description='" + description + "'}";
    }
}

Kod: Menggunakan Mesej JSON

Sekarang, mari kita kemas kini pengguna kita untuk menggunakan JsonDeserializer dan mendengar objek MyEvent. Ingat, anda juga perlu mengkonfigurasi penyahsir dalam application.properties.

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;
import com.coddykit.MyEvent; // Import your POJO

@SpringBootApplication
public class JsonConsumerApp {
  public static void main(String[] args) {
    SpringApplication.run(JsonConsumerApp.class, args);
    System.out.println("JSON consumer app started, listening on my-json-topic...");
  }

  @Component
  static class MyJsonListener {
    @KafkaListener(topics = "my-json-topic", groupId = "json-group")
    public void listen(MyEvent event) {
      System.out.println("Received JSON Event: " + event.toString());
    }
  }
}
// Required application.properties configuration:
// spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
// spring.kafka.consumer.value-deserializer=org.springframework.kafka.support.serializer.JsonDeserializer
// spring.kafka.properties.spring.json.value.default.type=com.coddykit.MyEvent

Kuiz Konfigurasi Penyahsiri

Bayangkan aplikasi pengguna Kafka Spring Boot yang perlu memproses mesej apabila nilainya ialah perwakilan JSON bagi objek Product, yang ditakrifkan dalam com.example.Product. Apakah konfigurasi penting dalam application.properties untuk persediaan ini?

Imbas Kembali Penyahsirian

Syabas! Dalam pelajaran ini, anda telah mempelajari bahawa mesej Kafka ialah bait mentah dan memerlukan penyahsirian untuk digunakan dalam aplikasi Java.

  • Spring Kafka menggunakan StringDeserializer secara lalai untuk mesej teks mudah.
  • Anda boleh mengkonfigurasi penyahsir khusus untuk kunci dan nilai menggunakan application.properties.
  • JsonDeserializer memudahkan pemetaan mesej JSON kepada POJO Java secara automatik.

Memahami penyahsiran ialah asas penting untuk membina pengguna Kafka yang kukuh dan boleh mengendalikan pelbagai format data dengan berkesan.

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 “Penyahsiriatan dan Penukaran Mesej” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka), termasuk “Penyahsiriatan dan Penukaran Mesej”, 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 “Penyahsiriatan dan Penukaran Mesej”?

Konfigurasikan penyahsiri untuk pelbagai format mesej seperti String, JSON dan objek tersuai, serta kendalikan penukaran mesej dalam pendengar anda. 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 3 daripada 4.

Berapa lamakah pelajaran “Penyahsiriatan dan Penukaran Mesej” 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. Membina Bekas Pendengar Kafka
  2. Pengurusan Kumpulan Pengguna
  3. Penyahsiriatan dan Penukaran Mesej
  4. Penggunaan Berkumpulan dan Mod Pengakuan
← Kembali ke Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka)