我正在开发一个容器化应用程序,其中一个前端应用程序向api网关调用http请求。api网关接收到的请求数据通过kafka转发给微服务。但是我必须将响应作为响应发送回api网关和前端应用程序。有谁能指导我如何通过kafka实现api网关和micron服务之间的同步请求和响应。
我试过与生产商和消费者,这就像火和忘记我在哪里无法回应的要求。
提前谢谢。
阿伦
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条答案
按热度按时间dgiusagp1#
如果我理解您的权利,您可能希望在kafka中设置类似于请求/响应rpc队列的内容。api(生产者)将请求放入requestkafka中,微服务(消费者)将接收请求进行处理。当响应准备就绪时,微服务(生产者)将响应放入responsekafka中,由api网关(使用者)拾取。最后,api网关将响应传递回前端。您需要弄清楚如何将微服务的响应关联回发出原始呼叫的客户端。rpc请求/响应是异步的。您可以通过让api直接调用微服务而不涉及kafka来进行同步调用。