如何使用gen-server在Erlang中将响应从rabbitmq消费者发送到生产者

pvabu6sv  于 2022-12-08  发布在  Erlang
关注(0)|答案(1)|浏览(122)

我有一个RabbitMq生产者和消费者。我正在使用Erlang编程语言和gen-server从生产者向消费者发送消息。如何从消费者向生产者发送回复?

dvtswwa3

dvtswwa31#

您必须使用rabbitmq队列来实现远程过程调用(RPC)模式。为了接收响应,客户端需要发送一个'callback'队列地址和请求。基本步骤:
1.在您的客户端应用程序中创建一个队列以获取响应并订阅它。
1.为您希望获得响应的每个rabbitmq消息添加其他属性:reply_to -发送响应的队列名称(来自第1页的队列名称),correlation_id -区分请求的id(在Erlang中,它可以是pid)。
1.服务器应用程序处理消息,并使用相同的相关ID将响应从p.1发布到队列。
1.客户端应用程序队列侦听器获得响应并将Erlang消息从correlation_id发送到pid。
1.您的gen_server将获得响应消息。
相关性id使您能够只创建一个响应队列。您可以在文档https://www.rabbitmq.com/tutorials/tutorial-six-elixir.html中阅读详细信息

相关问题