0

0

RabbitMQ安装(windows)实例教程

零下一度

零下一度

发布时间:2017-07-18 14:44:50

|

1683人浏览过

|

来源于php中文网

原创

管理后台

rabbitmq自带管理后台,安装后需要配置开启
进入rabbitmq安装目录中的sbin目录执行
rabbitmq-plugins enable rabbitmq_management
重启rabbitmq服务生效
打开http://localhost:15672/即可看到管理后台
用户名密码均为guest

配置说明

使用命令行查看队列列表

sbin>rabbitmqctl list_queues  
sbin>rabbitmqctl list_queues name messages_ready messages_unacknowledged

使用命令行查看exchange列表

sbin>rabbitmqctl list_exchanges

定义队列

RabbitMQ 不允许你用不同的参数重新定义一个已经存在的队列。

RabbitMQ doesn't allow you to redefine an existing queue with different parameters and will return an error to any program that tries to do that

可靠性

要确保消息不丢失,需要设置消息持久化,同时队列也必须为耐久的。
但是这样做仍然不是100%可靠,因为如果RabbitMQ 在接收消息后、完成持久化之前崩溃,那么就会导致消息丢失。

重复处理

考虑如下场景(前提:队列、消息都是持久的):

  1. 消费者接收了一个消息msgA,处理了一半,没有完成、没有发起ack确认;

  2. 此时RabbitMQ 崩溃了;

  3. 消费者完成了消息msgA的处理;

  4. 当RabbitMQ 重启后,发现msgA未被处理,于是msgA再次被发送给消费者。

这种场景下,消息msgA就会被处理两次,所以消费者端应该要有防止重复处理的机制。

ACK

ACK确认,只是告诉RabbitMQ 消费者已经完成了对消息的处理,而不是说逻辑上处理成功,即使是由于业务处理失败了,也要进行ACK确认。因为一般而言业务上的原因导致失败的话,重试是不解决问题的。只有网络中断、机器断电等故障引起的失败才有重试的必要。

免费红色响应式多语言企业通用模板1.0.0
免费红色响应式多语言企业通用模板1.0.0

该模板源码有公司简介、公司新闻、产品展示、客户案例、留言等企业官网常用页面功能。模板是响应式模板,支持多语言,完善的标签调用修改起来很方便。功能特点:1. 使用的框架采用HkCms开源内容管理系统v2.2.3版本、免费可以商用。2. 所需环境Apache/Nginx,PHP7.2 及以上 + MySQL 5.6 及以上。3. 安装教程: (1) 站点运行路径填写到public目录下。 (2) 浏览

下载

防止业务负载集中到某个消费者

channel.basicQos(prefetchCount);

设置
prefetchCount=1
,告诉RabbitMQ 每次只给一个消费者分配一个消息,直到上一个分配给该消费者的消息被确认处理完成。这样一来,消息就会根据实际处理情况,每次都分配给空闲的消费者。

关于默认Exchange

默认Exchange隐式地绑定到每一个队列,路由key为队列名。不能对其进行显式绑定或解绑。并且它是不可删除的。

The default exchange is implicitly bound to every queue, with a routing key equal to the queue name. It is not possible to explicitly bind to, or unbind from the default exchange. It also cannot be deleted.

消息传递的基本过程

发布者发布一个消息
-->exchange接收消息(如果发布者没有指定特定的Exchange则使用默认Exchange),并根据exchange的类型,按照一定的路由规则,把消息路由给每一个符合路由规则的队列(如果没有匹配的队列,则消息被丢弃)
-->队列将消息发送给订阅该队列的某一个消费者(如果没有消费者则消息保留在队列中,知道有消费者消费该消息)

Topic Exchange的通配符

星号匹配一个单词(注意,不是一个字母)

* (star) can substitute for exactly one word.
井号匹配任意个单词
# (hash) can substitute for zero or more words.

AMQP协议mandatory和immediate标志位的作用

mandatory和immediate是AMQP协议中basic.pulish方法中的两个标志位,它们都有当消息传递过程中不可达目的地时将消息返回给生产者的功能。具体区别在于:

1. mandatory标志位

当mandatory标志位设置为true时,如果exchange根据自身类型和消息routeKey无法找到一个符合条件的queue,那么会调用basic.return方法将消息返还给生产者;当mandatory设为false时,出现上述情形broker会直接将消息扔掉。

2. immediate标志位

当immediate标志位设置为true时,如果exchange在将消息route到queue(s)时发现对应的queue上没有消费者,那么这条消息不会放入队列中。当与消息routeKey关联的所有queue(一个或多个)都没有消费者时,该消息会通过basic.return方法返还给生产者。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

54

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

40

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

50

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

12

2026.01.31

漫画防走失登陆入口大全
漫画防走失登陆入口大全

2026最新漫画防走失登录入口合集,汇总多个稳定可用网址,助你畅享高清无广告漫画阅读体验。阅读专题下面的文章了解更多详细内容。

13

2026.01.31

php多线程怎么实现
php多线程怎么实现

PHP本身不支持原生多线程,但可通过扩展如pthreads、Swoole或结合多进程、协程等方式实现并发处理。阅读专题下面的文章了解更多详细内容。

1

2026.01.31

php如何运行环境
php如何运行环境

本合集详细介绍PHP运行环境的搭建与配置方法,涵盖Windows、Linux及Mac系统下的安装步骤、常见问题及解决方案。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php环境变量如何设置
php环境变量如何设置

本合集详细讲解PHP环境变量的设置方法,涵盖Windows、Linux及常见服务器环境配置技巧,助你快速掌握环境变量的正确配置。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php图片如何上传
php图片如何上传

本合集涵盖PHP图片上传的核心方法、安全处理及常见问题解决方案,适合初学者与进阶开发者。阅读专题下面的文章了解更多详细内容。

2

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP入门到实战消息队列RabbitMQ
PHP入门到实战消息队列RabbitMQ

共22课时 | 1.3万人学习

MongoDB 教程
MongoDB 教程

共17课时 | 2.5万人学习

XML教程
XML教程

共142课时 | 6.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号