官网原文:http://www.rabbitmq.com/tutorials/tutorial-one-php.html安装rabbitmq server和php扩展参考:https://mp.csdn.net/postedit/84646144
介绍RabbitMQ是一个消息代理:它接受并转发消息你可以把它当成一个邮局:当你想邮寄信件的时候,你会把信件放在投递箱中,并确信邮递员最终会将信件送到收件人的手里在这个例子中,RabbitMQ就相当与投递箱、邮局和邮递员。
RabbitMQ与邮局的区别在于:RabbitMQ并不处理纸质信件,而是接受、存储并转发二进制数据---消息谈到RabbitMQ的消息,通常有几个术语:生产者:是指发送消息的程序队列:相当于RabbitMQ的投递箱。
尽管消息在RabbitMQ和你的应用之间传递,但是消息仅仅会在队列之中存储队列只能存储在内存或磁盘中,本质上是一个大的消息缓冲区不同的生产者可以发送消息到同一个对队列,不同的消费者也可以从同一个队列中获取消息。
消费者:等待接受消息的程序注意,生产者、消费者以及RabbitMQ并不一定要在同一个主机上,在绝大部分的应用中它们都不在同一主机上如下图P代表生产者,C代表消费者,中间红色的小箱子就代表队列--RabbitMQ为了让消费者收到消息而保持的消息缓冲区。
接下来编写下hello worldRabbitMQ使用多种协议本教程介绍AMQP 0-9-1,这是一个用于消息传递的开放通用协议本教程中使用php-amqplib和Composer进行依赖关系管理1.先使用composer安装php-amqplib依赖
在项目中新建composer.json{"require": {"php-amqplib/php-amqplib": ">=2.6.1" }}执行 composer install //确保你的服务器已经安装了composer,centos环境安装composer方法
https://mp.csdn.net/postedit/846548052.生产者编写发送程序sending
生产者先连接到rabbitMQ.发送一个消息在send.php,我们需要先引入需要的库和类require_once__DIR__ . /vendor/autoload.php;usePhpAmqpLib
\Connection\AMQPStreamConnection;usePhpAmqpLib\Message\AMQPMessage;接着创建一个连接到服务器$connection = new AMQPStreamConnection(
localhost, 5672, guest, guest);$channel = $connection->channel();该连接抽象套接字(socket)连接,并为我们负责协议版本协商和认证等这里,我们连接到一个rabbitmq代理器在本地机器上-使用localhost。
如果我们想在不同的机器上连接到一个代理,我们只需在这里指定它的名称或IP地址guest为账号密码,rabbitmq安装完默认有生成该账号接着创建一个通道,声明一个队列$channel->queue_declare(。
hello, false, false, false, false);$msg = new AMQPMessage(Hello World!’);//发布$msg消息放到hello队列中$channel->basic_publish($msg,
, hello);echo " [x] Sent Hello World!\n”;关闭连接channel和连接$channel->close();$connection->close();send.php完整代码
:
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。