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 ...
随机推荐
- WAV音频文件按秒切片段
wav音频文件按秒切片段 import wave def split_wav_by_seconds(input_file, output_file, start_second, end_second) ...
- Gerrit 大量代码提交流程优化
# Gerrit 大量代码提交流程优化 背景 本文适用于 提交大量初始代码 的场景(仓库版本的早期). 有时候提交大量代码到Gerrit的时候会提示: $ git push Counting obje ...
- 【论文阅读】GRI: General Reinforced Imitation and its Application to Vision-Based Autonomous Driving
Column: December 30, 2021 11:01 PM Last edited time: January 10, 2022 4:45 PM Sensor/组织: 3 RGB; 曾经短暂 ...
- Qt 学习笔记 - 第四章 - Qt的三驾马车之 - 网络编程
Qt 学习笔记全系列传送门: Qt 学习笔记 - 第一章 - 快速开始.信号与槽 Qt 学习笔记 - 第二章 - 添加图片.布局.界面切换 Qt 学习笔记 - 第三章 - Qt的三驾马车之一 - 串口 ...
- mac mysql 设置默认编码格式utf-8
导读 博主百度一番,发现更改mysql默认编码格式,归结以下几个步骤. 详细步骤 切换当前目录 cd / cd private/etc 新建my.cnf文件 在当前目录下:private/etc su ...
- Mybatis-Plus最优化持久层开发
Mybatis-plus:最优化持久层开发 一:Mybatis-plus快速入门: 1.1:简介: Mybatis-plus(简称MP)是一个Mybatis的增强工具,在mybatis的基础上只做增强 ...
- 第二部分:关键技术领域的开源实践【内网穿透FRP】
FRP简介 FRP(Fast Reverse Proxy)作为一种高性能的内网穿透工具,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网IP节点(云 ...
- AX网相关图片(原创)
官网:AXA6.COM | The future is come. Copyright 2020 – 2023| AX网 Axa6.Com | All Rights Reserved
- 第十节 JMeter基础-初级购物车【接口关联-鉴权】
声明:本文所记录的仅本次操作学习到的知识点,其中商城IP错误,请自行更改. 背景:商城购物车可以添加数据,也可以删除数据. 思路: 登录后添加购物车,加入成功后查看购物车列表. 购物车列表,随机删除, ...
- Python 按分类样本数占比生成并随机获取样本数据
按分类样本数占比生成并随机获取样本数据 By:授客 QQ:1033553122 开发环境 win 10 python 3.6.5 需求 已知样本分类,每种分类的样本占比数,及样本总数,需要随机获取这些 ...