RabbitMQ相关总结
//connection
//channel //broke
//exchange:fanout、 dirct、 topic(*:一个单词、#:多个单词)、 header
//queue
//bind(exchange,queue,routingkey) //一、如何保证消息不丢失
//生产者发布消息时 设置消息持久化(Persistent:true)、设置确认模式(DeliveryMode:2)
//声明交换机时设置持久化(durable:true)
//声明队列时声明持久化(durable:true)
//消费者消费消息时关闭自动应答(autoAck:false) //二、实现延迟队列
//声明队列时设置队列消息过期时间TTL(x-message-ttl)或者发布消息时设置消息过期时间TTL(Expiration)
//配置死信队列
//当消息没有消费者过期时会进入死信队列,再消费死信队列中的消息可实现延迟队列的效果 //三、进入死信队列条件
//配置了死信队列
//消息被拒、过期、超过队列长度 //四、消费者2种消费模式
//Push(BasicConsume)、Pull(BasicGet) //五、如何保证消息不重复消费
前提:生产者产生消息时带一个唯一ID
方案一、将唯一ID设置为数据库表的唯一索引,通过数据库唯一索引保证消费端幂等性(适用于新增场景)
方案二、使用Redis+TTL+消费状态(过期时间)
方案三、使用数据库+补偿机制(数据库存唯一ID、消费状态、消费次数),定时任务自动处理消费多少次的任务
-->(特殊情况,比如消费完成没有更新消费状态)消费次数>N次,则人工介入做补偿
-->插入失败-->(已消费直接返回成功、消费中则拒收进入延迟队列)
插入消费记录(消费中、消费次数)-->插入成功-->执行业务-->执行成功-->修改消费记录状态为成功
-->执行失败-->删除消费记录-->重新投递
//六、开启手动应答模式后
//BasicAck()、BasicNAck、BasicReject

RabbitMQ相关总结的更多相关文章
- Rabbitmq相关学习网址
1.安装文档: http://www.cnblogs.com/shuzhenyu/p/9823324.html 2.RabbitMq的整理 exchange.route.queue关系 https:/ ...
- RabbitMq相关
RabbitMq 通过通过IP,Port等参数创建connection对象,然后实际上通信用的是channel,channel的建立基于connection RPC 调用: RPCClient通过ch ...
- RabbitMq相关运维
# 命令查询所有用户列表rabbitmqctl list_users # 使用命令对 xiandian-admin 用户进行授权set_permissions xiandian-admin '.*' ...
- rabbitmq 相关
Exchange 在上一节我们看到生产者将消息投递到Queue中,实际上这在RabbitMQ中这种事情永远都不会发生.实际的情况是,生产者将消息发送到Exchange(交换器,下图中的X),由Exch ...
- RabbitMQ 相关理论部分
集群配置方式 RabbitMQ可以通过三种方法来部署分布式集群系统,分别是:cluster,federation,shovel cluster: 不支持跨网段,用于同一个网段内的局域网 可以随意的动态 ...
- linux下RabbitMQ相关命令
1. 关闭与启动 ① 到指定目录:cd/etc/init.d ② 停止:rabbitmq-server stop ③ 启动:rabbitmq-server start ④ 查看是否停止/启动成功:ps ...
- RabbitMQ相关使用命令
启动:rabbitmq-server -detached 停止:rabbitmqctl stop 状态:rabbitmqctl status 查看所有用户rabbitmqctl list_users ...
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- 缓存、队列(Memcached、redis、RabbitMQ)
本章内容: Memcached 简介.安装.使用 Python 操作 Memcached 天生支持集群 redis 简介.安装.使用.实例 Python 操作 Redis String.Hash.Li ...
- RabbitMq 集群搭建
实验环境: 操作系统为 Centos 7.2 IP hostName 192.168.190.132 node132 192.168.190.139 node139 192.168.190.1 ...
随机推荐
- Kubernetes 审计(Auditing)
目录 一.系统环境 二.前言 三.Kubernetes 审计简介 四.审计策略简介 五.启用审计 5.1 引入审计 5.2 启用审计 六.审计策略 6.1 记录审计阶段为:ResponseStarte ...
- Mysql 聚合函数嵌套使用
Mysql 聚合函数嵌套使用 目的:Mysql 聚合函数嵌套使用 聚合函数不可以直接嵌套使用,比如: max(count(*)) 思路:但是可以嵌套子查询使用(先分组取出count值, 再将count ...
- FFmpeg变速处理视频文件
使用工具:小丸工具箱,HandBrake,FFmpeg 首先确定视频是否为VFR(可变帧率),如果是VFR需要在二次处理前转换成CFR(固定帧率) VFR转换CFR可以使用FFmpeg命令行或Hand ...
- openGauss集群主库出现流复制延迟告警
问题描述:环境是openGauss 5.0集群,在一次意外重启数据库之后.收到了一个主库的主从延迟告警,只有从库才能出现延迟,主库怎么会出现了告警延迟 告警信息: Status: Resolved H ...
- mtr和traceroute的区别,以及为什么traceroute不显示路径mtr却可以显示路径
最近工作主要都是网络策略的开通和网络测试,在测试的过程当中发现当网络不通时,用traceroute来看路由路径的时候总是无法显示出来,于是就换了个工具-mtr,发现mtr可以正常显示出路由路径,帮助我 ...
- Docker 快速学习手册及相关笔记 附带一些问题解决方案
参考与前言 Docker 官方教程 [英文]:https://docs.docker.com/get-started/ Windows Docker 安装 | 菜鸟教程 (runoob.com) Do ...
- 从安装到配置,教你用Argo CD对接CCE集群完成测试、生产部署
本文分享自华为云社区<Argo CD对接CCE完成不同测试.生产环境业务部署>,作者: 可以交个朋友. 一 背景说明 Argo CD是用于Kubernetes的声明性GitOps持续交付工 ...
- Nginx常用操作
Nginx Nginx的最重要的几个使用场景 静态资源服务,通过本地文件提供服务 反向代理服务,延伸出包括缓存,负载均衡等 API服务,OpenResty 相关概念 简单请求和非简单请求 请求方法是H ...
- [oeasy]python0095_乔布斯求职_雅达利_atari_breakout_打砖块_布什内尔_游戏机_Jobs
编码进化 回忆上次内容 上次 我们回顾了 电子游戏的历史 从 电子游戏鼻祖 双人网球 到 视频游戏 PingPong 再到 街机游戏 Pong 雅达利 公司 来了 嬉皮士 捣乱? 布什内尔 会如何 应 ...
- oeasy教您玩转vim - 4 - # 深入帮助
深入帮助 回忆上节课内容 上次制作了 oeasy.txt 用 vim oeasy.txt 打开了文件 :f[ile] 查询了当前文件 的信息 从 正常模式或命令模式(Normal mode) 切换到 ...