PHP rabbitmq Work queues

2018-04-25 16:22:17 浏览数 (1)

RabbitMQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。如果不熟悉AMQP,直接看RabbitMQ的文档会比较困难。首先讲一下 AMQP 1、系统集成,分布式系统的设计。各种子系统通过消息来对接,这种解决方案也逐步发展成一种架构风格,即“通过消息传递的架构”。 2、当系统中的同步处理方式严重影响了吞吐量,比如日志记录。假如需要记录系统中所有的用户行为日志,如果通过同步的方式记录日志势必会影响系统的响应速度,当我们将日志消息发送到消息队列,记录日志的子系统就会通过异步的方式去消费日志消息。 3、系统的高可用性,比如电商的秒杀场景。当某一时刻应用服务器或数据库服务器收到大量请求,将会出现系统宕机。如果能够将请求转发到消息队列,再有服务器去消费这些消息将会使得请求变得平稳,提高系统的可用性。

工作队列模式 安装rabbitmq 和 php-amqplib和php

代码语言:javascript复制
sudo apt install php
sudo apt install rabbitmq-server
安装依赖
sudo apt install php-bcmath php-mbstring
安装依赖
sudo apt install php-dom php-curl
安装composer
sudo apt install composer

创建目录

代码语言:javascript复制
mkdir sites
cd sites/

下载项目

代码语言:javascript复制
git clone https://github.com/php-amqplib/php-amqplib.git
cd php-amqplib/
sudo composer config -g repo.packagist composer https://packagist.phpcomposer.com
sudo composer update

测试项目

代码语言:javascript复制
cd demo/
生产者发送数据
php amqp_publisher.php  hello
消费者接受数据
php amqp_consumer.php


--------
hello
--------

完成

0 人点赞