使用 rabbitmq 进行的 8 小时 RPC 调用。这听起来很疯狂,但有啥问题吗?
Posted
技术标签:
【中文标题】使用 rabbitmq 进行的 8 小时 RPC 调用。这听起来很疯狂,但有啥问题吗?【英文标题】:An 8 hour RPC call using rabbitmq. It sounds crazy but is there anything wrong with it?使用 rabbitmq 进行的 8 小时 RPC 调用。这听起来很疯狂,但有什么问题吗? 【发布时间】:2014-12-04 20:43:42 【问题描述】:我正在使用 jruby 和 java 的 com.rabbitmq.client 通过 rabbitmq 对工作进程进行 rpc 调用。通话最多可能需要 8 小时才能完成。使用 RPC 似乎是错误的,但由于它基本上只是一个 pub/sub,我想知道这是否真的是一个合理的做法。
【问题讨论】:
【参考方案1】:我假设您正在使用独占的回复/回调队列。这种方法的唯一问题是,如果生产者宕机,队列就会消失,响应也会丢失。更好的方法可能是使用数据库来记录作业的状态/响应,并在作业的状态更改时触发事件,相关方可能会订阅这些事件。对于如此长时间运行的工作,我通常会避免以任何方式进行耦合。
【讨论】:
以上是关于使用 rabbitmq 进行的 8 小时 RPC 调用。这听起来很疯狂,但有啥问题吗?的主要内容,如果未能解决你的问题,请参考以下文章
RabbitMQ中文文档PHP版本--远程过程调用(RPC)