如何在消费者和生产者之间通过快慢工人实现沟通?

时间:2019-05-30 08:59:30

标签: rest apache-kafka rpc soa event-driven

我正在寻找适合自己情况的模式和现有实现: 我有使用REST API的同步soa,实际上我使用REST实现了远程过程调用。而且我有些慢的工作人员会处理大量时间(大约30秒)的请求,并且由于某些请求的许可证限制,我只能按顺序处理它们(请参阅system setup)。

在这种情况下,建议采用什么方式实现沟通?

在使用者位于防火墙之后,我无法轻松地向他发送有关已完成任务的通知,并且如果我有消息经纪人的情况下,我可能无法让使用者使用我的消息代理,该如何混合同步和异步通信?

使用Flask和gunicorn在Python中实现工作人员。目前,我正在使用同步REST接口,并允许延迟,因为我只有快速工作人员。我看了看Kafka和RabbitMq,它们适合后端 沟通,但是生产者如何与消费者沟通?

如果消费者触发API请求,我的生产者可以返回代码202,那么生产者应如何通知消费者结果可用?消费者将不得不向生产者投票以获取结果吗?

如果我使用消息代理,并且我的网关代表使用者,则它应该有一个请求注册表(现在我已经为每个请求提供了GUID)和结果,您会建议采用哪种方法来实现它?

1 个答案:

答案 0 :(得分:0)

产生消息的生产者代理 消费者-代理,可以处理消息并实现用于处理消息的逻辑 enter image description here

相关问题