RabbitMQ 知识总结

前置问题

MQ定义及用途

MQ,即Message Queue,中文消息队列,本质是队列,存储的是消息。主要三大用途:应用解藕、异步处理、流量削峰。

AMQP定义

AMQP(Advanced message queuing protocol),高级消息队列协议。是具有现代特征的二进制协议,是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层的一个开发标准,为面向消息的中间件设计的。

RabbitMQ

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

RabbitMQ高性能的

Erlang语言最初用于交换机领域的架构模式,这样使得RabbitMQ在Broker之间进行数据交互的,性能是非常优秀的。
Erlang语言的优点:Erlang有着与原生socket一样的延迟。

RabbitMQ的优点

  1. 基于AMQP协议
  2. 高并发(是一个容量的概念,服务器可以接受的最大任务数量)
  3. 高性能(是一个速度的概念,单位时间内服务器可以处理的任务书)
  4. 高可用(是一个持久的概念,单位时间为服务器可以正常工作的时间比例)
  5. 强大的社区支持,以及很大型公司都在使用
  6. 支持插件如,haproxy
  7. 支持语言丰富

MacOS本地配置安装

安装rabbitmq

brew install php-amqp

管理页面地址

http://localhost:15672/

启动/关闭/重启

brew services start rabbitmq
brew services stop rabbitmq
brew services restart rabbitmq

PHP访问rabbitmq需安装配置

首先安装rabbitmq-c,后面安装amqp扩展的依赖。

brew install rabbitmq-c

查看rabbitmq-c安装目录

cd /usr/local/Cellar/rabbitmq-c/

使用pecl安装

pecl install amqp

安装过程提示:Set the path to librabbitmq install prefix [autodetect]
输入rabbitmq-c安装目录位置 (0.10.0)是安装的版本目录

/usr/local/Cellar/rabbitmq-c/0.10.0

安装完成重启php

brew services restart php

查看php是否安装成功amqp

php -m | grep amqp

php本地测试代码

记得管理页http://localhost:15672/ 设置用户及vhost

/* Create a new connection */
$cnn = new AMQPConnection();

// set the login details
$cnn->setVhost('bayeasy');
$cnn->setLogin('bayeasy');
$cnn->setPassword('bayeasy');

if ($cnn->connect()) {
    echo "Established a connection to the broker";
}
else {
    echo "Cannot connect to the broker";
}

Lavarvel 安装 amqp扩展

composer require php-amqplib/php-amqplib

你可能感兴趣的:(RabbitMQ,Rabbit,RabbitMQ总结)