Introduksjon til Kafka-produsenter
Lær å publisere meldinger til Kafka-emner ved hjelp av Spring Kafka-produsenter.
Introduksjon til Kafka-produsenter er en gratis leksjon i Spring Boot 4-mikrotjenester og REST API-er på CoddyKit. Dette er leksjon 1 av 3. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Spring Boot 4-mikrotjenester og REST API-er, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Spring Boot 4-mikrotjenester og REST API-er inneholder totalt 3 leksjoner.
Velkommen til hendelsesdrevet arkitektur!
I moderne applikasjoner må systemer ofte reagere på hendelser mens de skjer, i stedet for bare å vente på forespørsler. Dette er hovedideen bak hendelsesdrevet arkitektur (EDA).
EDA bidrar til å bygge fleksible og skalerbare systemer ved at ulike deler av applikasjonen kan kommunisere asynkront gjennom hendelser.
Hva er Apache Kafka?
Apache Kafka er en kraftig, distribuert strømmeplattform som ofte brukes til å bygge hendelsesdrevne mikrotjenester. Den er utviklet for behandling av datastrømmer i sanntid med høy gjennomstrømning og lav forsinkelse.
Tenk på den som en svært rask og robust meldingskø som kan håndtere enorme datamengder.
Kafkas grunnleggende konsepter
Kafka bygger på noen få sentrale ideer:
- Produsenter: Applikasjoner som sender data (meldinger/poster) til Kafka.
- Konsumenter: Applikasjoner som leser data fra Kafka.
- Topics: Kategorier eller strømmer som poster publiseres til. Konsumenter abonnerer på topics.
- Brokere: Kafka-servere som lagrer de publiserte dataene.
Produsentens oppgave
En Kafka-produsent har ansvar for å opprette og sende dataposter til Kafka-topics. Disse postene er ofte nøkkel-verdi-par, selv om nøkkelen er valgfri.
Produsenter venter ikke på bekreftelser fra konsumenter. De publiserer bare meldinger til topicen og går videre, noe som gjør kommunikasjonen asynkron.
Legge til Spring Kafka
For å integrere Kafka i Spring Boot-applikasjonen din trenger du avhengigheten spring-kafka. Denne modulen tilbyr praktiske abstraksjoner for samhandling med Kafka.
Legg til dette i pom.xml:
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>Produsentkonfigurasjon
Spring Kafka-produsenter trenger konfigurasjon, vanligvis i application.properties. De viktigste innstillingene er adressene til Kafka-brokerne og serialisererne for meldingsnøklene og -verdiene.
Serialiserere konverterer Java-objektene dine til byte for overføring over nettverket.
Konfigurasjonseksempel
Her er en grunnleggende konfigurasjon for en Kafka-produsent:
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.StringSerializerbootstrap-servers peker på Kafka-brokeren din. Vi bruker StringSerializer for både nøkkel og verdi.
Introduksjon til KafkaTemplate
KafkaTemplate er den sentrale klassen i Spring Kafka for sending av meldinger. Den forenkler samhandlingen med Kafka-brokere.
Du kan injisere den i Spring-komponentene dine og bruke metodene send() til å publisere meldinger til angitte topics.
Sende en enkel melding
La oss se hvordan du sender en enkel «Hello Kafka!»-melding til en topic med navnet 'my-topic' ved hjelp av KafkaTemplate.
Kjør dette eksempelet (kontroller at en Kafka-broker kjører på localhost:9092 og at 'my-topic' finnes).
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.");
};
}
}Meldinger med nøkler
Meldinger kan også sendes med en nøkkel. Kafka bruker nøkler for å sikre at meldinger med samme nøkkel går til samme partisjon i en topic, slik at rekkefølgen for relaterte data bevares.
Dette er avgjørende i situasjoner der meldingsrekkefølgen er viktig, for eksempel ved brukerhendelser eller aksjeoppdateringer for et bestemt produkt.
Hurtigsjekk av produsenten
Hvilke av de følgende er nødvendige komponenter eller konsepter når du setter opp en Spring Kafka-produsent?
Sammendrag av leksjonen
Du har tatt de første stegene inn i hendelsesdrevet arkitektur med Kafka! Vi lærte at Kafka er en distribuert strømmeplattform, og at produsenter er applikasjoner som sender meldinger til topics.
Vi gikk også gjennom hvordan Spring Kafka settes opp, hvordan produsentegenskaper konfigureres, og hvordan KafkaTemplate brukes til å sende meldinger, inkludert meldinger med nøkler. Dette danner grunnlaget for å bygge mikrotjenester som publiserer hendelser!
Lær deg Java med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 24
- Leksjoner
- 93
Ofte stilte spørsmål
Er leksjonen «Introduksjon til Kafka-produsenter» gratis?
Ja – hele teksten i «Introduksjon til Kafka-produsenter» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Spring Boot 4-mikrotjenester og REST API-er-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Spring Boot 4-mikrotjenester og REST API-er inneholder totalt 3 leksjoner.
Hva lærer jeg i «Introduksjon til Kafka-produsenter»?
Lær å publisere meldinger til Kafka-emner ved hjelp av Spring Kafka-produsenter. Du øver på Spring Boot 4-mikrotjenester og REST API-er med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Spring Boot 4-mikrotjenester og REST API-er?
Ingen tidligere erfaring er nødvendig. Spring Boot 4-mikrotjenester og REST API-er på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 3.
Hvor lang tid tar leksjonen «Introduksjon til Kafka-produsenter»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Spring Boot 4-mikrotjenester og REST API-er-leksjonen?
Ja. Alle Spring Boot 4-mikrotjenester og REST API-er-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Introduksjon til Kafka-produsenter
- Bygge Kafka-konsumenter
- Hendelsesdrevet integrasjon av mikrotjenester