Spring Boot 4-mikrotjänster och REST API:er · Lektion

Introduktion till Kafka-producenter

Lär Er att publicera meddelanden till Kafka-topics med Spring Kafka-producenter.

Lektion 1 av 312 steg

Introduktion till Kafka-producenter är en gratis lektion i Spring Boot 4-mikrotjänster och REST API:er på CoddyKit. Detta är lektion 1 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Spring Boot 4-mikrotjänster och REST API:er, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Spring Boot 4-mikrotjänster och REST API:er innehåller totalt 3 lektioner.

Välkommen till händelsestyrd arkitektur!

I moderna applikationer behöver system ofta reagera på händelser när de inträffar, i stället för att bara vänta på förfrågningar. Detta är grundidén bakom händelsestyrd arkitektur (EDA).

EDA hjälper till att skapa flexibla och skalbara system genom att låta olika delar av applikationen kommunicera asynkront via händelser.

Vad är Apache Kafka?

Apache Kafka är en kraftfull, distribuerad streamingplattform som ofta används för att bygga händelsestyrda mikrotjänster. Den är utformad för bearbetning av realtidsdataflöden med hög genomströmning och låg fördröjning.

Se det som en extremt snabb och beständig meddelandekö som kan hantera enorma datamängder.

Kafkas grundläggande begrepp

Kafka bygger på några centrala idéer:

  • Producenter: Applikationer som skickar data (meddelanden/records) till Kafka.
  • Konsumenter: Applikationer som läser data från Kafka.
  • Topics: Kategorier eller flöden där records publiceras. Konsumenter prenumererar på topics.
  • Brokers: Kafka-servrar som lagrar publicerade data.

Producentens uppgift

En Kafka-producent ansvarar för att skapa och skicka datarecords till Kafka-topics. Dessa records är ofta nyckel-värde-par, även om nyckeln är valfri.

Producenter väntar inte på bekräftelser från konsumenter. De publicerar meddelanden till topicen och går vidare, vilket gör kommunikationen asynkron.

Lägga till Spring Kafka

För att integrera Kafka i din Spring Boot-applikation behöver du beroendet spring-kafka. Den här modulen tillhandahåller praktiska abstraktioner för interaktion med Kafka.

Lägg till detta i din pom.xml:

<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency>

Producentkonfiguration

Spring Kafka-producenter behöver konfiguration, vanligtvis i application.properties. De viktigaste inställningarna är Kafka-brokernas adresser samt serializerarna för meddelandenas nycklar och värden.

Serializerare omvandlar dina Java-objekt till byte för överföring via nätverket.

Konfigurationsexempel

Här är en grundläggande konfiguration för en Kafka-producent:

spring.kafka.producer.bootstrap-servers=localhost:9092
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer

bootstrap-servers pekar på din Kafka-broker. Vi använder StringSerializer för både nyckel och värde.

Introduktion till KafkaTemplate

KafkaTemplate är den centrala klassen i Spring Kafka för att skicka meddelanden. Den förenklar interaktionen med Kafka-brokers.

Du kan injicera den i dina Spring-komponenter och använda dess send()-metoder för att publicera meddelanden till angivna topics.

Skicka ett enkelt meddelande

Vi ska se hur du skickar ett grundläggande meddelande 'Hello Kafka!' till en topic med namnet 'my-topic' med hjälp av KafkaTemplate.

Kör det här exemplet (kontrollera att en Kafka-broker körs på localhost:9092 och att 'my-topic' finns).

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.kafka.core.KafkaTemplate;

@SpringBootApplication
public class KafkaProducerApp {

  public static void main(String[] args) {
    SpringApplication.run(KafkaProducerApp.class, args);
  }

  @Bean
  public CommandLineRunner commandLineRunner(KafkaTemplate<String, String> kafkaTemplate) {
    return args -> {
      String topic = "my-topic";
      String message = "Hello Kafka!";
      System.out.println("Sending message: " + message + " to topic: " + topic);
      kafkaTemplate.send(topic, message);
      System.out.println("Message sent. Check your Kafka consumer.");
    };
  }
}

Meddelanden med nycklar

Meddelanden kan även skickas med en nyckel. Kafka använder nycklar för att säkerställa att meddelanden med samma nyckel hamnar i samma partition i en topic, vilket bevarar ordningen för relaterade data.

Detta är avgörande i situationer där meddelandeordningen spelar roll, till exempel för användarhändelser eller aktiekursuppdateringar för en viss produkt.

Snabbkontroll av producenten

Vilka av följande är viktiga komponenter eller begrepp när du konfigurerar en Spring Kafka-producent?

Sammanfattning av lektionen

Du har tagit dina första steg inom händelsestyrd arkitektur med Kafka! Vi lärde oss att Kafka är en distribuerad streamingplattform och att producenter är applikationer som skickar meddelanden till topics.

Vi gick även igenom hur du konfigurerar Spring Kafka och producentegenskaper samt använder KafkaTemplate för att skicka meddelanden, inklusive meddelanden med nycklar. Detta utgör grunden för att bygga mikrotjänster som publicerar händelser!

Gratis att börja

Lär dig Java med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
24
Lektioner
93

Vanliga frågor

Är lektionen ”Introduktion till Kafka-producenter” gratis?

Ja – hela texten till ”Introduktion till Kafka-producenter” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Spring Boot 4-mikrotjänster och REST API:er, kan Ni uppgradera till CoddyKit PRO. Kursen i Spring Boot 4-mikrotjänster och REST API:er innehåller totalt 3 lektioner.

Vad lär jag mig i ”Introduktion till Kafka-producenter”?

Lär Er att publicera meddelanden till Kafka-topics med Spring Kafka-producenter. Ni övar på Spring Boot 4-mikrotjänster och REST API:er med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Spring Boot 4-mikrotjänster och REST API:er?

Du behöver inga förkunskaper. Utbildningen i Spring Boot 4-mikrotjänster och REST API:er på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 3.

Hur lång tid tar lektionen ”Introduktion till Kafka-producenter”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Spring Boot 4-mikrotjänster och REST API:er-lektionen?

Ja. Varje Spring Boot 4-mikrotjänster och REST API:er-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Introduktion till Kafka-producenter
  2. Bygga Kafka-konsumenter
  3. Händelsestyrd integrering av mikrotjänster
← Tillbaka till Spring Boot 4-mikrotjänster och REST API:er