RabbitMQ 客户端开发向导

Posted eleven24

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RabbitMQ 客户端开发向导相关的知识,希望对你有一定的参考价值。

准备工作:composer 引入 php-amqplib

说明:本文说明基于 Java(主要说明原理),实现使用 php

 

RabbitMQ Java 客户端使用 com.rabbitmq.client 作为顶级包名,关键的 Class 和 Interface 有 Cahnnel、Connection、ConnectionFactory、Consumer 等。AMQP 协议层面的操作通过 Channel 接口实现。Connection 是用来开启 Channel(信道)的,可以注册事件处理器,也可以在应用结束时关闭连接。与 RabbitMQ 相关的开发工作,基本上也是围绕 Connection 和 Channel 这两个类展开的。本文详细内容有这几点:连接、交换器/队列的创建与绑定、发送消息、消费消息、消费消息的确认和关闭连接。

 

1、连接 RabbitMQ

$connection = new AMQPStreamConnection(‘localhost‘, 5672, ‘guest‘, ‘guest‘);
$channel = $connection->channel();

  在创建之后, $channel 可以用来发送或者接收消息了。

  注意要点:

  Connection 可以用来创建多个 Channel 实例,但是 Channel 实例不能在线程间共享,应用程序应该为每一个线程开辟一个 Channel。某些情况下 Channel 的操作可以并发运行,但是在其他情况下会导致网络上出现错误的通信帧交错,同时也会影响发送方确认(publisher confirm)机制的运行,所以多线程间共享 Channel 实例是非线程安全的。

  

2、使用交换器和队列

  交换器和队列是 AMQP 中 high-level 层面的构建模块,应用程序需确保在使用它们的时候就已经存在了,在使用之前需要先声明(declare)它们。

 

 

  

 

以上是关于RabbitMQ 客户端开发向导的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ客户端开发向导

RabbitMQ客户端开发向导

消息队列客户端开发向导二(基于 Spring 的 amqp 实现)

消息队列客户端开发向导二(基于 Spring 的 amqp 实现)

如何膨胀由 Android Studio 向导在 Activity 中创建的片段(列表)?

显示 ActionBar 选项卡的两个片段