Sto indagando su Kafka 9 come progetto per hobby e ho completato alcuni esempi di tipo "Hello World".Kafka supporta la richiesta di messaggistica di risposta
Ho dovuto pensare alle applicazioni di Real World Kafka basate sulla richiesta di messaggistica di risposta in generale e in particolare su come collegare un messaggio di richiesta di Kafka al suo messaggio di risposta.
Stavo pensando a utilizzare un UUID generato come chiave del messaggio di richiesta e utilizzare questo UUID di richiesta come chiave del messaggio di risposta associata. Molto lo stesso tipo di meccanismo con cui WebSphere MQ ha un ID di correlazione dei messaggi.
Il mio processo di fine 2 sarebbe.
1). Il client Kafka genera un UUID casuale e invia un singolo messaggio di richiesta Kafka. 2). Il server consumerebbe questo estratto messaggio richiesta & memorizzare il valore UUID richiesta 3). completare un processo aziendale utilizzando il payload del messaggio. 4). Rispondere con un messaggio di risposta che utilizza il valore UUID memorizzato dal messaggio di richiesta come messaggio di risposta Chiave. 5). il client Kafka esegue il polling dell'argomento della risposta fino a quando non esaurisce il timeout o recupera un messaggio con il valore UUID della richiesta originale.
Quello che mi preoccupa è che il polling di Kafka Consumer rimuoverà altri messaggi dei client dall'argomento di risposta e incrementerà gli offset facendo fallire altri client.
Sto tentando di applicare Kafka in un caso d'uso per il quale non è mai stato progettato?
È possibile implementare la messaggistica di richiesta/risposta in Kafka?
Chris grazie per aver dedicato del tempo a guardare il mio problema. La sua bella idea di memorizzare la risposta nel DB locale. – Hector