Bagaimana Spring Boot menyepadukan Kafka
Langkah 1: Tambah kebergantungan
Tambah kebergantungan berikut dalam pom.xml:
<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>2.8.0</version> </dependency>
Langkah 2: Konfigurasikan Kafka
Tambah dalam fail application.yml
Perkara berikut konfigurasi:
sping: kafka: bootstrap-servers: localhost:9092 consumer: group-id: my-group auto-offset-reset: earliest producer: value-serializer: org.apache.kafka.common.serialization.StringSerializer key-serializer: org.apache.kafka.common.serialization.StringSerializer
Di sini kami mengkonfigurasi alamat perkhidmatan Kafka sebagai localhost:9092
, mengkonfigurasi ID kumpulan pengguna sebagai my-group
dan menetapkan offset terawal untuk membaca mesej. Di pihak pengeluar, kami mengkonfigurasi penyeri mesej sebagai StringSerializer
.
Langkah 3: Buat penerbit
Kami kini akan mencipta pengeluar Kafka untuk menghantar mesej ke pelayan Kafka. Di sini kami akan membuat titik akhir API RESTful untuk menerima permintaan POST dan menghantar mesej kepada Kafka.
Pertama, kami akan mencipta kelas KafkaProducerConfig
yang akan digunakan untuk mengkonfigurasi pengeluar Kafka:
@Configuration public class KafkaProducerConfig { @Value("${spring.kafka.bootstrap-servers}") private String bootstrapServers; @Bean public Map<String, Object> producerConfigs() { Map<String, Object> props = new HashMap<>(); props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class); props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class); return props; } @Bean public ProducerFactory<String, String> producerFactory() { return new DefaultKafkaProducerFactory<>(producerConfigs()); } @Bean public KafkaTemplate<String, String> kafkaTemplate() { return new KafkaTemplate<>(producerFactory()); } }
Dalam kod di atas, kami menggunakan anotasi @Configuration
untuk mengisytiharkan KafkaProducerConfig
kelas sebagai kelas Konfigurasi. Kami kemudian menyuntik atribut @Value
dalam fail konfigurasi menggunakan anotasi bootstrap-servers
.
Seterusnya, kami mencipta kaedah producerConfigs
yang menetapkan konfigurasi pengeluar Kafka. Di sini, kami menetapkan tiga atribut BOOTSTRAP_SERVERS_CONFIG
, KEY_SERIALIZER_CLASS_CONFIG
dan VALUE_SERIALIZER_CLASS_CONFIG
.
Kemudian, kami mencipta kaedah producerFactory
yang mencipta kilang pengeluar Kafka. Di sini kami telah menggunakan kelas DefaultKafkaProducerFactory
dan lulus konfigurasi kami.
Akhir sekali, kami mencipta kaedah kafkaTemplate
yang mencipta kejadian KafkaTemplate
. Di sini, kami menggunakan kilang pengeluar yang baru kami buat sebagai parameter dan mengembalikan contoh KafkaTemplate
.
Seterusnya, kami akan mencipta titik akhir RESTful yang menerima permintaan POST dan menghantar mesej kepada Kafka. Di sini, kami akan mencipta pengawal RESTful menggunakan anotasi @RestController
:
@RestController public class KafkaController { @Autowired private KafkaTemplate<String, String> kafkaTemplate; @PostMapping("/send") public void sendMessage(@RequestBody String message) { kafkaTemplate.send("my-topic", message); } }
Dalam kod di atas, kami telah menggunakan anotasi @Autowired
untuk menyuntik tika KafkaTemplate
ke dalam kelas KafkaController
. Kemudian, kami mencipta kaedah sendMessage
untuk menghantar mesej kepada Kafka.
Di sini kami menggunakan kaedah kafkaTemplate.send
untuk menghantar mesej kepada topik my-topic
. Kaedah hantar mengembalikan objek ListenableFuture
untuk pemprosesan hasil tak segerak.
Langkah 4: Buat pengguna
Sekarang, kami akan mencipta pengguna Kafka untuk menerima mesej daripada pelayan Kafka. Di sini kami akan membuat kumpulan pengguna dan mengkonfigurasinya untuk membaca mesej daripada topik my-topic
.
Pertama, kami akan mencipta kelas KafkaConsumerConfig
yang akan digunakan untuk mengkonfigurasi pengguna Kafka:
@Configuration @EnableKafka public class KafkaConsumerConfig { @Value("${spring.kafka.bootstrap-servers}") private String bootstrapServers; @Value("${spring.kafka.consumer.group-id}") private String groupId; @Bean public Map<String, Object> consumerConfigs() { Map<String, Object> props = new HashMap<>(); props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); props.put(ConsumerConfig.GROUP_ID_CONFIG, groupId); props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); return props; } @Bean public ConsumerFactory<String, String> consumerFactory() { return new DefaultKafkaConsumerFactory<>(consumerConfigs()); } @Bean public ConcurrentKafkaListenerContainerFactory<String, String> kafkaListenerContainerFactory() { ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory<>(); factory.setConsumerFactory(consumerFactory()); return factory; } }
Dalam kod di atas, kami menggunakan anotasi @Configuration
untuk mengisytiharkan KafkaConsumerConfig
kelas sebagai Konfigurasikan kelas dan dayakan Kafka menggunakan anotasi @EnableKafka
.
Kemudian, kami menggunakan anotasi @Value
untuk menyuntik atribut bootstrap-servers
dan consumer.group-id
dalam fail konfigurasi.
Seterusnya, kami mencipta kaedah consumerConfigs
yang menetapkan konfigurasi pengguna Kafka. Di sini, kami menetapkan lima atribut: BOOTSTRAP_SERVERS_CONFIG、GROUP_ID_CONFIG
, AUTO_OFFSET_RESET_CONFIG
, KEY_DESERIALIZER_CLASS_CONFIG
dan VALUE_DESERIALIZER_CLASS_CONFIG
.
Kemudian, kami mencipta kaedah consumerFactory
yang mencipta kilang pengguna Kafka. Di sini kami telah menggunakan kelas DefaultKafkaConsumerFactory
dan lulus konfigurasi kami.
Akhir sekali, kami mencipta kaedah kafkaListenerContainerFactory
yang mencipta tika ConcurrentKafkaListenerContainerFactory
. Di sini kami menyuntik kilang pengguna ke dalam contoh kafkaListenerContainerFactory
.
Seterusnya, kami akan mencipta kelas pengguna Kafka KafkaConsumer
yang mendengar topik my-topic
dan menerima mesej:
@Service public class KafkaConsumer { @KafkaListener(topics = "my-topic", groupId = "my-group-id") public void consume(String message) { System.out.println("Received message: " + message); } }
Dalam kod di atas, kami menggunakan @KafkaListener
Anotasi mengisytiharkan kaedah pengguna yang menerima mesej yang dibaca daripada topik my-topic
. Di sini kami menetapkan ID kumpulan pengguna kepada my-group-id
.
Kini, kami telah menyelesaikan penyediaan pengeluar dan pengguna Kafka. Kita boleh memulakan aplikasi menggunakan perintah mvn spring-boot:run
dan menghantar permintaan POST ke titik akhir http://localhost:8080/send
menggunakan arahan curl untuk menghantar mesej kepada Kafka. Kami kemudiannya boleh melihat mesej yang diterima oleh pengguna pada konsol. Ini ialah persediaan asas untuk menggunakan Spring Boot dan Kafka. Kita boleh berubah dan berkembang mengikut keperluan untuk memenuhi keperluan tertentu.
Atas ialah kandungan terperinci Bagaimana Spring Boot menyepadukan Kafka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Dengan perkembangan Internet dan teknologi, pelaburan digital telah menjadi topik yang semakin membimbangkan. Ramai pelabur terus meneroka dan mengkaji strategi pelaburan, dengan harapan memperoleh pulangan pelaburan yang lebih tinggi. Dalam perdagangan saham, analisis saham masa nyata adalah sangat penting untuk membuat keputusan, dan penggunaan baris gilir mesej masa nyata Kafka dan teknologi PHP adalah cara yang cekap dan praktikal. 1. Pengenalan kepada Kafka Kafka ialah sistem pemesejan terbitan dan langgan yang diedarkan tinggi yang dibangunkan oleh LinkedIn. Ciri-ciri utama Kafka ialah

SpringBoot dan SpringMVC adalah kedua-dua rangka kerja yang biasa digunakan dalam pembangunan Java, tetapi terdapat beberapa perbezaan yang jelas antara mereka. Artikel ini akan meneroka ciri dan penggunaan kedua-dua rangka kerja ini dan membandingkan perbezaannya. Mula-mula, mari belajar tentang SpringBoot. SpringBoot telah dibangunkan oleh pasukan Pivotal untuk memudahkan penciptaan dan penggunaan aplikasi berdasarkan rangka kerja Spring. Ia menyediakan cara yang pantas dan ringan untuk membina bersendirian, boleh dilaksanakan

Lima pilihan untuk alat visualisasi Kafka ApacheKafka ialah platform pemprosesan strim teragih yang mampu memproses sejumlah besar data masa nyata. Ia digunakan secara meluas untuk membina saluran paip data masa nyata, baris gilir mesej dan aplikasi dipacu peristiwa. Alat visualisasi Kafka boleh membantu pengguna memantau dan mengurus kelompok Kafka serta lebih memahami aliran data Kafka. Berikut ialah pengenalan kepada lima alat visualisasi Kafka yang popular: ConfluentControlCenterConfluent

Bagaimana untuk memilih alat visualisasi Kafka yang betul? Analisis perbandingan lima alat Pengenalan: Kafka ialah sistem baris gilir mesej teragih berprestasi tinggi dan tinggi yang digunakan secara meluas dalam bidang data besar. Dengan populariti Kafka, semakin banyak perusahaan dan pembangun memerlukan alat visual untuk memantau dan mengurus kelompok Kafka dengan mudah. Artikel ini akan memperkenalkan lima alat visualisasi Kafka yang biasa digunakan dan membandingkan ciri serta fungsinya untuk membantu pembaca memilih alat yang sesuai dengan keperluan mereka. 1. KafkaManager

Artikel ini akan menulis contoh terperinci untuk bercakap tentang perkembangan sebenar dubbo+nacos+Spring Boot. Artikel ini tidak akan merangkumi terlalu banyak pengetahuan teori, tetapi akan menulis contoh paling mudah untuk menggambarkan bagaimana dubbo boleh disepadukan dengan nacos untuk membina persekitaran pembangunan dengan cepat.

Untuk memasang ApacheKafka pada RockyLinux, anda boleh mengikuti langkah di bawah: Kemas kini sistem: Pertama, pastikan sistem RockyLinux anda dikemas kini, laksanakan arahan berikut untuk mengemas kini pakej sistem: sudoyumupdate Pasang Java: ApacheKafka bergantung pada Java, jadi anda perlu memasang Java Development Kit (JDK) terlebih dahulu ). OpenJDK boleh dipasang melalui arahan berikut: sudoyuminstalljava-1.8.0-openjdk-devel Muat turun dan nyahmampat: Lawati laman web rasmi ApacheKafka () untuk memuat turun pakej binari terkini. Pilih versi yang stabil

Direktori yang biasa digunakan untuk projek springBoot Struktur direktori dan spesifikasi penamaan projek springBoot diperkenalkan berdasarkan struktur direktori dan spesifikasi penamaan melalui pengenalan, kami boleh membantu anda menyelesaikan masalah tersebut projek? Bagaimana untuk menamakan direktori dengan lebih standard? Apakah maksud setiap direktori? Tunggu tiga soalan. Perihalan direktori servicex//Nama projek|-admin-ui//Kod bahagian hadapan perkhidmatan pengurusan (biasanya UI dan SERVICE dimasukkan ke dalam satu projek untuk pengurusan mudah)|-servicex-auth//Modul 1|-servicex-common// Modul 2|-servicex-gateway//Modul 3|

Dalam tahun-tahun kebelakangan ini, dengan peningkatan data besar dan komuniti sumber terbuka yang aktif, semakin banyak perusahaan telah mula mencari sistem pemprosesan data interaktif berprestasi tinggi untuk memenuhi keperluan data yang semakin meningkat. Dalam gelombang peningkatan teknologi ini, go-zero dan Kafka+Avro sedang diberi perhatian dan diterima pakai oleh semakin banyak perusahaan. go-zero ialah rangka kerja mikroperkhidmatan yang dibangunkan berdasarkan bahasa Golang Ia mempunyai ciri-ciri prestasi tinggi, kemudahan penggunaan, pengembangan mudah dan penyelenggaraan yang mudah. Ia direka untuk membantu perusahaan membina sistem aplikasi perkhidmatan mikro yang cekap. pertumbuhannya yang pesat
