
RabbitMq
文章平均质量分 72
记录rabbit mq的用法
戴国进
往后余生,专注人工智能领域!!!
展开
-
详解RabbitMQ三种队列类型
经典队列是 RabbitMQ 中最早期也是最常用的一种队列类型。它们具有良好的性能和稳定性,适合大多数常规的消息传递场景。仲裁队列是一种基于 Raft 协议实现的新型队列,专为提高数据一致性和可靠性而设计。消息回放:允许消费者在任何时间点重新读取过去的消息。这对于需要重现历史事件或进行审计的应用程序特别有用。重复消费:消费者可以多次消费同一条消息,这在调试和处理异常时尤为重要。下面我们通过一个简单的例子看看重复消费// 声明流式队列[ActionTitle(Name = "订阅队列")]原创 2024-10-30 20:58:34 · 1534 阅读 · 0 评论 -
修改hostname导致RabbitMQ数据丢失
公司的很多关键服务都使用了RabbitMQ来作为消息队列服务, 可以说是非常地关键的一个环节, 最近由于业务量的上升, 导致RabbitMQ的CPU持续走高, 所以抽空研究了一下RabbitMQ的扩容, 利用我们自己运维平台使用的一个单节点的RabbitMQ来作为测试吧.看到这个单节点的RabbitMQ的服务器主机名不是很规范, 所以就顺手改了主机名。原创 2024-05-31 09:58:15 · 830 阅读 · 0 评论 -
RabbitMQ 七战 Kafka
本文翻译自下面两篇文章(查阅原文需要翻墙): https://medium.com/better-programming/rabbitmq-vs-kafka-1ef22a041793 https://medium.com/better-programming/rabbitmq-vs-kafka-1779b5b70c41 作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”。基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案原创 2021-11-08 21:08:24 · 667 阅读 · 0 评论 -
从17 个方面对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 等分布式消息队列
本文转载于:https://www.zhihu.com/question/43557507 知乎专题:Kafka,Mq,Redis作为消息队列使用时的差异? (里面还有很多回答值得去看和思考)1资料文档Kafka:中。有 kafka 作者自己写的书,网上资料也有一些。rabbitmq:多。有一些不错的书,网上资料多。zeromq:少。没有专门写 zeromq 的书,网上的资料多是一些代码的实现和简单介绍。rocketmq:少。没有专门写 rocketmq 的书...转载 2021-04-14 21:55:15 · 5866 阅读 · 1 评论 -
RabbitMQ 消息超时时间、队列消息超时时间、队列超时时间
为消息设置 TTL 有一个问题:RabbitMQ 只对处于队头的消息判断是否过期(即不会扫描队列),所以,很可能队列中已存在死消息,但是队列并不知情。TTL 是 Time-To-Live 的缩写,指的是存活时间,RabbitMQ 可以为每个队列设置消息的超时时间。消息不会在消费者的缓冲区中过期,也就是说,只要队列在消息过期前将消息推送给消费者,消费者就一定能处理到这条消息。向队列中添加 110 条消息,前 10 条为没有超时时间的消息,后 100 条为设置了超时时间的消息。...转载 2022-08-06 19:20:55 · 6393 阅读 · 0 评论 -
PHP + rabbitmq 实现异步延迟消息队列(库存归还)
一、前言需求:电商秒杀场景中,如果用户下单10分钟未支付,需要进行库存归还本篇是用PHP+Laravel+RabbitMQ来实现异步延迟消息队列二、场景在电商项目中,当我们下单之后,一般需要 20 分钟之内或者 30 分钟之内付款,否则订单就会进入异常处理逻辑中,被取消,那么进入到异常处理逻辑中,就可以当成是一个延迟队列公司的会议预定系统,在会议预定成功后,会在会议开始前半小时通知所有预定该会议的用户安全工单超过 24 小时未处理,则自动拉企业微信群提醒相关责任人用户下单外卖以后原创 2022-05-27 21:30:10 · 917 阅读 · 0 评论 -
解决 go 连接RabbitMQ 出现 “no access to this vhost“ 错误
连接的失败报错:RabbitMQ Exception (403) Reason: "no access to this vhost"因为没有配置该用户的访问权限,可以通过rabbitmqctl add_vhost admin来添加,并赋予权限:rabbitmqctl set_permissions -p 用户名 admin "." "." ".*"代码在连接的时候,必须制定对应的vhost,否则是没有访问权限:conn, err := amqp.Dial("amqp://sky:passwo原创 2022-03-01 19:20:52 · 3084 阅读 · 0 评论 -
docker 安装rabbitMQ
1、进入docker hub镜像仓库地址:https://hub.docker.com/2、搜索rabbitMq,进入官方的镜像,可以看到以下几种类型的镜像;我们选择带有“mangement”的版本(包含web管理页面);3、拉取镜像docker pull rabbitmq:3.7.7-management使用:docker images 查看所有镜像4、根据下载的镜像创建和启动容器docker run -d --name rabbitmq3.7.7 -p 5672.原创 2022-02-23 18:11:00 · 293 阅读 · 0 评论 -
RabbitMQ的死信队列详解
死信队列介绍死信队列:DLX,dead-letter-exchange 利用DLX,当消息在一个队列中变成死信 (dead message) 之后,它能被重新publish到另一个Exchange,这个Exchange就是DLX消息变成死信有以下几种情况消息被拒绝(basic.reject / basic.nack),并且requeue = false 消息TTL过期 队列达到最大长度死信处理过程DLX也是一个正常的Exchange,和一般的Exchange没有区别,它能在任何的队列上转载 2020-11-10 21:52:38 · 4986 阅读 · 0 评论 -
RabbitMQ 延迟队列,延迟任务,死信队列
延迟任务应用场景场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就需要设置成超时。场景二:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单。场景三:过1分钟给新注册会员的用户,发送注册邮件等。实现方案 定时任务轮询数据库,看是否有产生新任务,如果产生则消费任务 pcntl_alarm为进程设置一个闹钟信号 swoole的异步高精度定时器:swoole_time_tick(类似javascript的setInterval)和swool转载 2020-11-10 21:44:30 · 5488 阅读 · 0 评论 -
Rabbit MQ 入门
Rabbit MQ是一个通用的消息中间件,支持AMQP,STOMP,MQTT等多种协议安装#在mac OSX下可以使用如下命令来安装 rabbitmqbrew install rabbitmq基本命令# ls -al ~/rabbitmq/3.7.14/sbin/total 1104drwxr-xr-x 10 jet admin 320 May 19 14:35 .drwxr-xr-x 37 jet wheel 1184 May 19 14:37 ..-原创 2020-06-18 14:15:23 · 8958 阅读 · 0 评论