thinkPHP5如何使用rabbitmq
thinkPHP5如何使用rabbitmq?
安装好 tp5 的 rabbitmq 扩展后,在项目根目录文件添加文件 rabbitmq.php 引导启动 rabbitmq。
<?php define('APP_PATH', __DIR__ . '/application/'); define('BIND_MODULE','rabbitmq/Client'); // 加载框架引导文件 require __DIR__ . '/thinkphp/start.php';
生成者
private function queueEvent($message) { // error_log("\n******" . date("His") . "********\n" . print_r($message, 1) . "\n*************\n", 3, 'messag_event.log'); dump($message); //设置你的连接 $conn_args = array('host' => 'ip', 'port' => '5672', 'login' => 'ymq', 'password' => '123456', 'vhost'=>'/'); $content = $message; //创建连接和channel $conn = new \AMQPConnection($conn_args); if (!$conn->connect()) { die("Cannot connect to the broker!\n"); } $channel = new \AMQPChannel($conn); //创建交换机 $e_name = 'MQTT_device_event'; //交换机名 $ex = new \AMQPExchange($channel); $ex->setName($e_name); // $ex->setType(AMQP_EX_TYPE_TOPIC); //direct类型 $ex->setType(AMQP_EX_TYPE_DIRECT); //direct类型 $ex->setFlags(AMQP_DURABLE); //持久化 $ex->declareExchange(); }
相关推荐:《ThinkPHP教程》
运行 php 目录运行生产者
消费者
public function index() { //连接RabbitMQ $conn_args = array('host' => 'ip', 'port' => '5672', 'login' => 'ymq', 'password' => '123456', 'vhost' => '/'); $e_name = 'MQTT_device_event'; //交换机名 $q_name = 'q_event'; //队列名 $k_route = 'key_event'; //路由key //创建连接和channel $conn = new \AMQPConnection($conn_args); if (!$conn->connect()) { die("Cannot connect to the broker!\n"); } $channel = new \AMQPChannel($conn); //创建交换机 $ex = new \AMQPExchange($channel); $ex->setName($e_name); $ex->setType(AMQP_EX_TYPE_DIRECT); //direct类型 $ex->setFlags(AMQP_DURABLE); //持久化 $ex->declareExchange(); //创建队列 $q = new \AMQPQueue($channel); $q->setName($q_name); $q->setFlags(AMQP_DURABLE); //持久化 $q->declareQueue(); //最好队列object在这里declare()下,否则如果是新的queue会报错 //绑定交换机与队列,并指定路由键,可以多个路由键 $q->bind($e_name, $k_route); //$q->bind($e_name, 'key_33'); //阻塞模式接收消息 echo "Message:\n"; while(True){ $q->consume(function($envelope, $queue) { $msg = $envelope->getBody(); //处理数据 echo $msg . PHP_EOL; //处理消息 $queue->ack($envelope->getDeliveryTag()); //手动发送ACK应答 }); //$q->consume('processMessage', AMQP_AUTOACK); //自动ACK应答 } $conn->disconnect(); }
执行下命令 php rabbitmq
启动即可
查看队列是否被消费
登录 http://127.0.0.115672/#/queues 地址
以上是thinkPHP5如何使用rabbitmq的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

如何利用React和RabbitMQ构建可靠的消息传递应用引言:现代化的应用程序需要支持可靠的消息传递,以实现实时更新和数据同步等功能。React是一种流行的JavaScript库,用于构建用户界面,而RabbitMQ是一种可靠的消息传递中间件。本文将介绍如何结合React和RabbitMQ构建可靠的消息传递应用,并提供具体的代码示例。RabbitMQ概述:

如何在PHP中使用RabbitMQ实现分布式消息处理引言:在大规模应用程序开发中,分布式系统已成为一个常见的需求。分布式消息处理是这样的一种模式,通过将任务分发到多个处理节点,可以提高系统的效率和可靠性。RabbitMQ是一个开源的,可靠的消息队列系统,它采用AMQP协议来实现消息的传递和处理。在本文中,我们将介绍如何在PHP中使用RabbitMQ来实现分布

如何保证消息不丢失rabbitmq消息投递路径生产者->交换机->队列->消费者总的来说分为三个阶段。1.生产者保证消息投递可靠性。2.mq内部消息不丢失。3.消费者消费成功。什么是消息投递可靠性简单点说就是消息百分百发送到消息队列中。我们可以开启confirmCallback生产者投递消息后,mq会给生产者一个ack.根据ack,生产者就可以确认这条消息是否发送到mq.开启confirmCallback修改配置文件#NONE:禁用发布确认模式,是默认值,CORRELATED:

随着现代应用程序的复杂性增加,消息传递已成为一种强大的工具。在这个领域,RabbitMQ已成为一个非常受欢迎的消息代理,可以用于在不同的应用程序之间传递消息。在这篇文章中,我们将探讨如何在Go语言中使用RabbitMQ。本指南将涵盖以下内容:RabbitMQ简介RabbitMQ安装RabbitMQ基础概念Go语言中的RabbitMQ入门RabbitMQ和Go

Golang与RabbitMQ实现实时数据同步的解决方案引言:当今时代,随着互联网的普及和数据量的爆发式增长,实时数据的同步变得越来越重要。为了解决数据异步传输和数据同步的问题,许多公司开始采用消息队列的方式来实现数据的实时同步。本文将介绍基于Golang和RabbitMQ的实时数据同步的解决方案,并提供具体的代码示例。一、什么是RabbitMQ?Rabbi

现在越来越多的企业开始采用微服务架构模式,而在这个架构中,消息队列成为一种重要的通信方式,其中RabbitMQ被广泛应用。而在go语言中,go-zero是近年来崛起的一种框架,它提供了很多实用的工具和方法,让开发者更加轻松地使用消息队列,下面我们将结合实际应用,来介绍go-zero和RabbitMQ的使用方法和应用实践。1.RabbitMQ概述Rabbit

GolangRabbitMQ:实现高可用的消息队列系统的架构设计和实现,需要具体代码示例引言:随着互联网技术的不断发展和应用的广泛,消息队列成为了现代软件系统中不可或缺的一部分。作为一种实现解耦、异步通信、容错处理等功能的工具,消息队列为分布式系统提供了高可用性和扩展性的支持。而Golang作为一种高效、简洁的编程语言,广泛应用于构建高并发和高性能的系统

随着互联网时代的到来,消息队列系统变得越来越重要。它可以使不同的应用之间实现异步操作、降低耦合度、提高可扩展性,进而提升整个系统的性能和用户体验。在消息队列系统中,RabbitMQ是一个强大的开源消息队列软件,它支持多种消息协议、被广泛应用于金融交易、电子商务、在线游戏等领域。在实际应用中,往往需要将RabbitMQ和其他系统进行集成。本文将介绍如何使用sw
