Rabbitmq - simple模式

simple模式(一对一)

一、生产者消息推送到消息队列

<?php 
$v_host = 'order';
$queue_name = 'goods';//队列名

//地址 端口 用户名 密码 vhost
$connection = new AMQPStreamConnection('localhost',5672,'rabbitmq','rabbitmq,$v_host);

//新建通道
$channel = $connection->channel();
//声明队列 参数:队列名、不存在则自动创建、持久化、通道关闭后不自动删除队列
$channel->queue_declare($queue_name,false,true,false);

//消息 参数:持久化
$data = 'this is message';
$msg = new AMQPMessage($data,[
  'delivery_mode'=>AMQPMessage::DELIVERY_MODE_PERSISTENT
]);
//将消息推送到队列里
$channel->basic_publish($msg,'',$queue_name);

//关闭通道
$channel->close();
?>

队列声明参数

二、消费者接收消息

$v_host = 'order';
$queue_name = 'goods';//队列名

//地址 端口 用户名 密码 vhost
$connection = new AMQPStreamConnection('localhost',5672,'rabbitmq','rabbitmq,$v_host);

//新建通道
$channel = $connection->channel();
//声明队列 参数:队列名、不存在则自动创建、持久化、通道关闭后不自动删除队列
$channel->queue_declare($queue_name,false,true,false);

$callback = function($msg){
  echo 'received'.$msg->body.'\n';
}
//取出消息 进行消费
$channel->basic_consume($queue_name,'',false,true,false,false,callback);
while($channel->is_open){
  $channel->waite();
}

$channel->close();
$connection->close();

启动消费者参数

posted @ 2022-08-22 11:23  Myifb  阅读(21)  评论(0)    收藏  举报