Condivisione della tecnologia

produttore kafka

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

produttore

I produttori sono responsabili della creazione dei messaggi e del loro recapito a Kafka.
Inserisci qui la descrizione dell'immagine

bilancio del carico

  1. Strategia elettorale.
  2. Strategia casuale.
  3. Hash secondo la chiave.

Strategia di partizionamento predefinita di Kafka: se la chiave è specificata, i messaggi con la stessa chiave verranno inviati alla stessa partizione (le partizioni vengono ordinate se la chiave non è specificata, viene utilizzata la strategia di polling);

Mandare un messaggio

acks specifica di quante repliche di partizione ha bisogno il produttore per ricevere il messaggio prima di considerarlo scritto con successo.

Non ci sono vantaggi o svantaggi tra i tre metodi, è invece necessario scegliere la strategia appropriata in base alle condizioni locali. Esiste un compromesso tra prestazioni e affidabilità.

Esistono 3 modi per inviare messaggi:

Invia e dimentica.

riscontri = 0.
Il produttore non attende alcuna risposta dal broker dopo aver inviato il messaggio. Nella maggior parte dei casi, i messaggi possono essere recapitati con successo perché Kafka è altamente disponibile e il produttore dispone di un meccanismo per tentare automaticamente di inviarli nuovamente. Tuttavia, se si verifica un errore irreversibile o un timeout, il messaggio andrà perso e l'applicazione non riceverà alcuna informazione o eccezione.
Nello stesso ambiente di configurazione, impostando cks su 0 è possibile ottenere il throughput massimo.

Invia in modo asincrono

acks=1, valore predefinito.
Dopo che il produttore ha inviato il messaggio, finché la copia leader della partizione scrive con successo il messaggio, riceverà una risposta positiva dal server.

  • Se non è possibile scrivere il messaggio sulla copia leader, ad esempio quando la copia leader si blocca e viene rieletta una nuova copia leader, il produttore riceverà una risposta di errore. Per evitare la perdita del messaggio, il produttore può scegliere di inviare nuovamente il messaggio Messaggio.
  • Se un messaggio viene scritto sulla copia leader e viene restituita una risposta positiva al produttore, e la copia leader si blocca prima di essere ritirata dalle altre copie follower, il messaggio andrà comunque perso in questo momento perché il messaggio corrispondente non esiste nella copia del leader neoeletto.
    acks è impostato su 1, che rappresenta un compromesso tra affidabilità del messaggio e velocità effettiva.
Invia in modo sincrono

acks = -1 o acks = tutti.
Dopo che il produttore ha inviato il messaggio, deve attendere che tutte le repliche nell'ISR scrivano correttamente il messaggio prima di poter ricevere una risposta positiva dal server.
Nello stesso ambiente di configurazione, impostando cks su -1 (tutti) è possibile ottenere la massima affidabilità. Ma questo non significa che il messaggio debba essere affidabile, perché nell'ISR può esserci solo una copia leader, il che degenera nella situazione acks=1.