Come ottenere esattamente il riconoscimento da Kafka una volta che il messaggio è stato consumato o elaborato. Potrebbe sembrare stupido, ma esiste un modo per conoscere l'offset iniziale e finale di quel messaggio per il quale è stata ricevuta l'ack?Come ottenere conferma da Kafka
risposta
Quello che ho trovato finora è di 0,8 hanno introdotto il seguente modo per scegliere l'offset per la lettura ..
kafka.api.OffsetRequest.EarliestTime() trova l'inizio dei dati nel registra e avvia lo streaming da lì, kafka.api.OffsetRequest.LatestTime() riprodurrà solo i nuovi messaggi.
esempio di codice https://cwiki.apache.org/confluence/display/KAFKA/0.8.0+SimpleConsumer+Example
Ancora non è sicuro circa la parte riconoscimento
Kafka non è realmente strutturato per fare questo. Per capire perché, rivedere la documentazione di progettazione here.
Per fornire una conferma esatta una volta, è necessario creare un sistema di tracciamento esterno per l'applicazione, in cui si scrivono esplicitamente i riconoscimenti e si implementano i blocchi sugli ID della transazione per garantire che le operazioni vengano elaborate una sola volta. Il costo computazionale dell'implementazione di questo sistema è straordinariamente alto ed è una delle ragioni principali per cui i grandi sistemi transazionali richiedono hardware relativamente esotici e hanno una scalabilità probabilmente inferiore rispetto a sistemi come Kafka.
Se non si richiede una semantica di durevolezza, è possibile utilizzare l'API dei gruppi per tenere traccia approssimativa della lettura dell'ultimo messaggio. Ciò garantisce che ogni messaggio venga letto almeno una volta. Tieni presente che, poiché l'API dei gruppi non ti consente di monitorare esplicitamente la logica di elaborazione della tua applicazione, le tue effettive garanzie di elaborazione sono abbastanza deboli in questo scenario. Gli schemi che si basano sull'elaborazione idempotent sono comuni in questo ambiente.
In alternativa, è possibile utilizzare l'API SimpleConsumer con il nome errato (è piuttosto complesso da utilizzare), che consente di tracciare in modo esplicito timestamp all'interno dell'applicazione. Questo è il livello più alto di garanzia di elaborazione che può essere raggiunto tramite le API native di Kafka poiché consente di tenere sotto controllo le proprie applicazioni dei dati che vengono letti dalla coda.
- 1. come usare kafka acls?
- 2. Come posso ottenere l'ULTIMO offset di un argomento di kafka?
- 3. Javascript Alertify con ritorno da conferma
- 4. Come ottenere multi-tenancy nel contesto di Kafka e tempesta?
- 5. Come ottenere conferma utente in guscio di pesce?
- 6. Kafka Storm Integration using Kafka Spout
- 7. Kafka - Il modo più semplice per ottenere l'ultima correzione
- 8. Replica di messaggi da un argomento di Kafka a un altro argomento di kafka
- 9. Conferma password?
- 10. argomento Kafka vs partizione
- 11. Come creare argomenti in apache kafka?
- 12. Il mio codice ASP.Net può ottenere conferma da sendgrid che è stata inviata una e-mail?
- 13. Come verificare che SSL funzioni per Kafka
- 14. Come imposto le opzioni Java per Kafka?
- 15. Come posso ottenere uitableViewCell da indexPath?
- 16. Kafka Java SimpleConsumer strana codifica
- 17. Come decidere le dimensioni di Kafka Cluster
- 18. Abilita JMX su Kafka Brokers
- 19. Impossibile comunicare con il server kafka utilizzando kafka Producer API
- 20. Apache Kafka: stato consumatore
- 21. Come utilizzo più utenti in Kafka?
- 22. Integrazione Camel Kafka
- 23. Offset di Kafka Connect. Preparatevi?
- 24. Kafka genera java.nio.channels.ClosedChannelException
- 25. -Conferma: $ false impostato come impostazione globale
- 26. java.lang.NoClassDefFoundError: kafka/common/TopicAndPartition
- 27. Kafka CommitFailedException eccezione consumatore
- 28. kafka consumer 0.9 retrocompatibile?
- 29. Kafka in sistema distribuito
- 30. Fluentd vs Kafka