RabbitMQ的PHP教程之RPC (六)

RPC(Remote Procedure Call Protocol)远程过程调用协议,简称远程调用。但如果仅仅从这一层意义上来说,RabbitMQ的PRC没有实际的意义,因为远程调用接口服务,我们通过curl会更简单易用一些,而且PHP本身也有RPC调用的相关方法。但我要说的是,RabbitMQ的RPC主要用于消息消费后的回复。在这一点RabbitMQ就显得有意义了。因为我们有的时候,发送消息后,需要知道消费的情况,根据消费的情况做后续的逻辑。

在开始介绍之前,我们先了解下RabbitMQ消息的属性,以下是我从$envelope打印出来的信息。

[body:AMQPEnvelope:private] => [register]Message[warning]
#消息内容

[delivery_tag:AMQPEnvelope:private] => 1
#在消费确认中会有使用到。

[is_redelivery:AMQPEnvelope:private] => 

[exchange_name:AMQPEnvelope:private] => exchange.all.logs
#exchange的名称

[routing_key:AMQPEnvelope:private] => register.warning
#routeKey

[content_type:AMQPEnvelope:private] => application/json
#消息的类型,我们一般设置为application/json

[content_encoding:AMQPEnvelope:private] => 
#消息编码

[headers:AMQPEnvelope:private] => array()

[delivery_mode:AMQPEnvelope:private] => 1
#设置为2表示持久化,1为临时的

[priority:AMQPEnvelope:private] => 0
[correlation_id:AMQPEnvelope:private] => 
#用来关联RPC的请求与响应.本文将使用到
[reply_to:AMQPEnvelope:private] => 
#常用作回调队列名,本文将使用到。
[expiration:AMQPEnvelope:private] => 
[message_id:AMQPEnvelope:private] => 
#用来存放消息的id
[timestamp:AMQPEnvelope:private] => 0
#发来存放发送消息的时间。
[type:AMQPEnvelope:private] => 
[user_id:AMQPEnvelope:private] => 
[app_id:AMQPEnvelope:private] =>

 相关阅读:

  1. RabbitMQ的原理与操作示例
  2. RabbitMQ AMQP 消息模型攻略
  3. PHP中的AMQP类
  4. RabbitMQ的PHP教程之入门 (一)
  5. RabbitMQ的PHP教程之工作队列 (二)
  6. RabbitMQ的PHP教程之发布/订阅(三)
  7. RabbitMQ的PHP教程之Routing (四)
  8. RabbitMQ的PHP教程之topic (五)
  9. RabbitMQ的PHP教程之RPC (六)

RabbitMQ的PHP教程之RPC (六)》上有1条评论

  1. Pingback引用通告: PHP中的AMQP类 | 精彩每一天

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>