请问PHP如何操作RabbitMQ , web中使用队列一般是怎么设计的啊 ?


比较大的购物网站中的 购物车 , 结算 是不是都使用了队列啊 ?

能举一些例子吗 ?

php rabbitmq

chuyin 10 years, 8 months ago

以下这些语言都是支持的
C# (using .net/c# client)
erlang (using erlang client)
java (using java client)
perl (using Net::RabbitFoot)
php (using a fork of php-amqplib)
python (using pika)
python-puka (using puka)
ruby (using amqp gem)

消息传递操作流程介绍

请输入图片描述

消息传递操作流程介绍
AMQP 有四个非常重要的概念:
虚拟机(virtual host),交换机(exchange),队列(queue)和绑定(binding)。

虚拟机: 通常是应用的外在边界,我们可以为不同的虚拟机分配访问权限。
     虚拟机可持有多个交换机、队列和绑定。

交换机: 从连接通道(Channel)接收消息,并按照特定的路由规则发送给队列。

队列: 消息最终的存储容器,直到消费客户端(Consumer)将其取走。

绑定: 也就是所谓的路由规则,告诉交换机将何种类型的消息发送到
    某个队列中。

消息传递操作流程介绍
消费者: 创建信息通道。
消费者: 定义消息队列。
消费者: 定义特定类型的交换机。
消费者: 设定绑定规则 (包括交换机名称、队列名称以及路由键)
消费者: 等待消息。
生产者: 创建消息。
生产者: 将消息投递给信息通道 (注明接收交换机名称和路由键)
交换机: 获取消息,依据交换机类型决定是否匹配路由规则
消费者: 获取并处理消息,发送反馈。
结束: 关闭通道和连接。

藤原x妹红 answered 10 years, 8 months ago

Your Answer