消息队列RabbitMQ的安装配置与PHP中的使用

一、RabbitMQ安装

windows安装

下载地址:
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.3/rabbitmq-server-3.8.3.exe
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.3/rabbitmq-server-windows-3.8.3.zip
2.linux安装

下载地址:

Debian, Ubuntu:

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.3/rabbitmq-server_3.8.3-1_all.deb

Centos8:

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.3/rabbitmq-server-3.8.3-1.el8.noarch.rpm

Centos7:

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.3/rabbitmq-server-3.8.3-1.el7.noarch.rpm

Centos6:

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.3/rabbitmq-server-3.8.3-1.el6.noarch.rpm

OpenSUSE:

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.3/rabbitmq-server-3.8.3-1.suse.noarch.rpm

SLEX 11x:

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.3/rabbitmq-server-3.8.3-1.sles11.noarch.rpm

 

二、RabbitMQ配置

下载Erlang并安装

Erlang下载地址:https://www.erlang.org/downloads

按照你的自己的环境,下载合适的版本并安装即可。

windows相对来说安装比较简单,和普通软件的安装没有区别,按照提示向下进行即可。

Linux安装:需要下载源码,并进行编译安装,这个会在另外的文章中进行说明

 

三、RabbitMQ原理与消息队列

消息:是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。

消息队列:消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到消息队列中而不用管谁来取,消息使用者只管从消息队列中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。

用途:在不同的进程或线程之间进行通讯。

主流的消息队列:
RabbitMQActiveMq、ZeroMq、kafkaRocketMQ(阿里开源)

本文主要介绍RabbitMQ

RabbitMQ是应用程序之间通讯的一种方法,是建立在AMQP协议基础上的,使用Erlang语言开发的,完整且可复制的企业消息系统。

支持系统:windows,linux,macOX等。

开发语言支持:rubypythonjavaphp. netC/C++Node.js等。

AMQPAdvanced Message Queue Protocol(高级消息队列协议),是一个提供统一消息服务的应用层标准高级消息队列协议。

 

四、RabbitMQ特性

RabbitMQ起源于金融系统,用于在分布式系统中存储并转发消息,在易用性、扩展性、高可用性等方面表现不俗。

具体特性包括:

可靠性(Reliability:使用一些机制来保证可靠性,如:持久化,传输确认,发布确认等。

灵活的路由(Flexible Routing):在消息进入队列之前,通过exchange来路由消息。RabbitMQ默认再系统中提供了一些路由以供使用,对于复杂的路由可以将多个exchange绑在一起,也通过插件机制来实现自己的路由。

高可用(Highly Available Queues):队列可以在集群中的机器上进行镜像,使得在部分节点出问题的情况下队列仍然可用。

多种协议(Multi-protocol):RabbitMQ 支持多种消息队列协议,比如 STOMPMQTT 等等。

多语言客户端(Many Clients):RabbitMQ 几乎支持所有常用语言,比如 Java.NETRuby 等等。

管理界面(Management UI):RabbitMQ 提供了一个易用的用户界面,使得用户可以监控和管理消息 Broker 的许多方面。

跟踪机制(Tracing):如果消息异常,RabbitMQ 提供了消息跟踪机制,使用者可以找出发生了什么。

插件机制(Plugin System):RabbitMQ 提供了许多插件,来从多方面进行扩展,也可以编写自己的插件。

五、RabbitMQ基本概念:

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfdpx.html