kafka fornisce la messaggistica di pubblicazione/sottoscrizione come un registro di commit distribuito. Solitamente si installa kafka su ogni host in cui è necessario produrre alcuni dati da inoltrare da qualche altra parte e tutti questi host formeranno insieme un cluster. L'aspetto positivo è che, se per qualche motivo la connettività di rete diventa instabile o diminuisce, l'applicazione può continuare a produrre dati/log e non andranno persi. Mentre se l'applicazione invia direttamente i registri a qualche host di registrazione centralizzato remoto, potresti perdere alcuni registri durante il periodo di interruzione della rete.
fluentd è un centralizzato collettore di log che viene comunemente installato su un host (o più se è necessario il ridimensionamento orizzontale). Si collega alle origini dati remote, applica il filtro e invia i dati di registro unificati ai sink di dati remoti.
Dalla documentazione fluentd, è possibile vedere che fluentd può consume data from kafka e produce data towards kafka pure. Questo da solo dovrebbe suggerire che fluentd e kafka si trovano su livelli diversi poiché il primo usa quest'ultimo.
Sarebbe più logico per compare fluentd and logstash effettivamente. Per quanto riguarda fluentd, kafka è solo un'altra fonte di dati e/o data sink, ma sono del tutto diverse bestie.
Se si desidera il meglio di entrambi i mondi, utilizzare kafka come input/output di pipe di dati da/verso le proprie app e fluentd (o logstash) come sistema di registrazione centralizzato leggendo da tali argomenti di kafka.
Se vuoi leggere di più sull'argomento, puoi leggere molto bene il modo in cui lo fluentd and kafka complement each other, leggi che non sono in competizione l'uno con l'altro.
Signore, sei una leggenda :) Grazie mille. –
Grazie, sono sempre felice di aiutare;) – Val
Per il beneficio di tutti, la persona che ha messo a downvot la domanda e la risposta può fornire qualche commento sul motivo per cui l'ha fatto. Per favore chiariscici ;-) – Val