PHP是否可以像RPC服务一样对待AMQP,并发送消息和阻止,直到返回回复?这方面有什么好的例子吗?有没有任何库以一种易于使用的方式封装这些功能?
我希望拥有代理消息传递系统的灵活性,但保护web层不需要了解其异步性质。
当然,绝对。看看RPC风格的请求是如何在系统中流动的:
- 发出请求
- 请求者现在阻止等待对该请求的答复
这完全可以通过像AMQP这样的异步消息系统来实现。你只需要自己做RPC关联:
- 在带有唯一ID的异步消息中发送请求(这不会阻止)
- 接收来自消息系统的消息并阻止,直到您收到具有相同唯一ID的消息(这意味着您刚刚收到回复)
RabbitMQ是一家AMQP经纪人,它在线提供了关于如何做到这一点的文档。