Penyahsiriatan dan Penukaran Mesej
Konfigurasikan penyahsiri untuk pelbagai format mesej seperti String, JSON dan objek tersuai, serta kendalikan penukaran mesej dalam pendengar anda.
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-deserializerspring.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.MyEventKuiz 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
StringDeserializersecara lalai untuk mesej teks mudah. - Anda boleh mengkonfigurasi penyahsir khusus untuk kunci dan nilai menggunakan
application.properties. JsonDeserializermemudahkan 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.
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
- Membina Bekas Pendengar Kafka
- Pengurusan Kumpulan Pengguna
- Penyahsiriatan dan Penukaran Mesej
- Penggunaan Berkumpulan dan Mod Pengakuan