Реализация HTTP синхронного запроса ответа в кафке - PullRequest
0 голосов
/ 02 мая 2020

Я работаю над приложением-контейнером, в котором клиентское приложение вызывает HTTP-запрос к шлюзу API. Данные запроса, полученные через API Gateway, передаются в сервис Micro через Kafka. Но я должен отправить ответ обратно как результат обратно в шлюз API и обратно во внешнее приложение. Кто-нибудь может подсказать, как мне добиться синхронного запроса и ответа между API-шлюзом и сервисом micron через Kafka.

Я пробовал с Producer и Consumer, который похож на Fire, и забыл, где я не могу ответить обратно запрос.

Заранее спасибо.

Арун

using Confluent.Kafka;


Producer Code
using var p = new ProducerBuilder<string, string>(config).Build();
 // Send the message to our test topic in Kafka                
                var dr = await p.ProduceAsync("test", message);


Consumer Code

using var c = new ConsumerBuilder<Ignore, string>(conf).Build();
  c.Subscribe("test");
 // Consume a message from the test topic. 
                    var cr = c.Consume(cts.Token);

1 Ответ

0 голосов
/ 02 мая 2020

Если я правильно понимаю, вы, вероятно, захотите настроить что-то вроде очереди запросов / ответов RP C в Кафке. API (производитель) сбросит запрос в requestKafka, а микросервис (потребитель) заберет его для обработки. Когда ответ будет готов, микросервис (производитель) поместит ответ в responseKafka, который будет получен шлюзом API (потребитель). Наконец, шлюз API доставит ответ обратно во внешний интерфейс. Вам необходимо выяснить, как связать ответ от микросервиса с клиентом, который сделал исходный вызов. Запрос / ответ RP C является асинхронным. Вы можете сделать синхронный вызов, если API напрямую вызовет микросервис без участия Кафки.

...