Rumah > Java > javaTutorial > Kawalan Pemesejan dengan Kafka dan Spring Boot: Panduan Praktikal

Kawalan Pemesejan dengan Kafka dan Spring Boot: Panduan Praktikal

王林
Lepaskan: 2024-08-31 13:01:32
asal
635 orang telah melayarinya

Messaging Control with Kafka and Spring Boot: A Practical Guide

Dalam seni bina perkhidmatan mikro, komunikasi tak segerak antara perkhidmatan adalah penting untuk memastikan kebolehskalaan dan daya tahan sistem. Apache Kafka, platform penstriman yang diedarkan, telah menjadi salah satu alat paling popular untuk tujuan ini. Dalam siaran ini, kami akan meneroka cara menyediakan dan menyepadukan Kafka dengan Spring Boot untuk mengurus pertukaran mesej antara perkhidmatan dengan cekap dan mantap.

  1. Menyediakan Persekitaran Sebelum kita memulakan pengekodan, kita perlu menyediakan persekitaran pembangunan kita. Jika anda belum memasang Apache Kafka lagi, anda boleh menyediakannya dengan mudah menggunakan Docker, mencipta docker-compose.yml:
services:
  zookeeper:
    image: wurstmeister/zookeeper:3.4.6
    ports:
     - "2181:2181"
  kafka:
    image: wurstmeister/kafka:latest
    ports:
     - "9092:9092"
    environment:
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
Salin selepas log masuk

Dengan Kafka aktif dan berjalan, kita boleh meneruskan untuk mengkonfigurasi Spring Boot.

  1. Mengkonfigurasi But Spring Mula-mula, buat projek Spring Boot baharu. Anda boleh menambah kebergantungan yang diperlukan dalam pom.xml anda:
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.kafka</groupId>
        <artifactId>spring-kafka</artifactId>
    </dependency>
</dependencies>

Salin selepas log masuk

Seterusnya, konfigurasikan application.properties untuk menyambung ke Kafka:

spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.consumer.group-id=group_id
spring.kafka.consumer.auto-offset-reset=earliest

Salin selepas log masuk
  1. Melaksanakan Pengeluar Mesej Mari buat perkhidmatan Spring Boot ringkas yang menghantar mesej kepada topik Kafka. Pertama, kami mencipta kelas KafkaProducer.java:
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.stereotype.Service;

@Service
public class KafkaProducer {

    private final KafkaTemplate<String, String> kafkaTemplate;

    public KafkaProducer(KafkaTemplate<String, String> kafkaTemplate) {
        this.kafkaTemplate = kafkaTemplate;
    }

    public void sendMessage(String message) {
        kafkaTemplate.send("topic_name", message);
    }
}

Salin selepas log masuk

Kami boleh menambah titik akhir REST untuk menguji penghantaran mesej:

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MessageController {

    private final KafkaProducer kafkaProducer;

    public MessageController(KafkaProducer kafkaProducer) {
        this.kafkaProducer = kafkaProducer;
    }

    @PostMapping("/send")
    public void sendMessage(@RequestBody String message) {
        kafkaProducer.sendMessage(message);
    }
}

Salin selepas log masuk
  1. Melaksanakan Mesej Pengguna Sekarang, mari kita cipta pengguna untuk menerima mesej ini. Kelas KafkaConsumer mungkin kelihatan seperti ini:
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Service;

@Service
public class KafkaConsumer {

    @KafkaListener(topics = "topic_name", groupId = "group_id")
    public void consume(String message) {
        System.out.println("Message received: " + message);
    }
}

Salin selepas log masuk

Dengan pelaksanaan ini, setiap kali mesej dihantar kepada Kafka, pengguna akan menerima dan memprosesnya.

Mengintegrasikan Apache Kafka dengan Spring Boot ialah gabungan yang berkuasa untuk mengurus komunikasi tak segerak dalam seni bina perkhidmatan mikro. Dalam siaran ini, kami menyediakan persekitaran, mencipta pengeluar dan pengguna, dan menguji aplikasi kami. Ini hanyalah permulaan – Kafka menawarkan banyak ciri lanjutan lain yang boleh anda terokai untuk menjadikan seni bina anda lebih berdaya tahan dan berskala. Saya harap tutorial ini membantu anda! Jika anda mempunyai sebarang soalan atau cadangan, sila tinggalkan komen di bawah.

Atas ialah kandungan terperinci Kawalan Pemesejan dengan Kafka dan Spring Boot: Panduan Praktikal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan