le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
I produttori sono responsabili della creazione dei messaggi e del loro recapito a Kafka.
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);
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:
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.
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.
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.