简介
RabbitMQ 是一款开源的消息队列,接收和转发消息。你可以把它想象成一个投递箱,你可以确信它可以准确无误的把你的消息投递给消费者。
RabbitMQ和投递箱的最大区别在于它不是处理信件的,而是它处理二进制数据–消息
RabbitMQ在表述方面使用了某些术语
生产意味着传送。一个程序发送消息就是一个生产者
队列是一个生存在RabbitMQ中的投递箱。尽管消息可以经过RabbitMQ和你的应用程序。但是他们只能存储在队列中。队列被内存和硬盘所限制,这本质上就是一块大的消息缓存区。多个生产者可以往一个队列里投递消息,而且多个消费者也可以从一个队列中获取数据。
消费意味着接收。一个消费者就是一个等待接收信息的应用程序.
注意:生产者,消费者和broker不一定要在同一台机器上。在实际情况中它们并没有。
{使用 php-amqplib client}
在剩余的教程中会使用两个php c程序:一个生产者发送一个消息,一个消费者接收消息而且把它打印出来。在php-amqplib中封装了一些细节的东西
使用composer按照php-amqplib
composer require ‘php-amqplib:2.6.x’
没有按照composer for windows
一键安装(https://github.com/composer/windows-setup/releases/tag/v4.8.0)
按照RabbitMQ服务器
按照rabbitmq-server和erlang(开发rabbitmq的语言)
打开rabbitMQ web界面
进入rabbitMQ安装目录中的sbin目录
rabbitmq-plugins.bat list查看安装插件
rabbitmq-plugins.bat enable rabbitmq_management 开启网页版控制台
启动rabbitMQ(安装目录/sbin/下)
rabbitmq-server rabbitmq-server -detached(后台启动) 默认端口5672
查看RabbitMQ服务器信息
rabbitmqctl status
进入网页控制台
localhost:15672
关闭rabbitmq服务器
rabbitmqctl stop
{hello word}
生产者:
connection表示连接,
c
o
n
n
e
c
t
i
o
n
表
示
连
接
,
channel是信道,
msg是消息,
m
s
g
是
消
息
,
channel->queue_declare是代表消息队列
声明一个队列是很重要,队列不存在的时候会创造它。消息内容是一个byte数组。所以可以传递所有东西。
消费者:
前三步是一样的,连接,信道,队列。
运行:先运行消费这,后运行生产者
生产者:
消费者: