消息队列MQ是一种应用程序对应用程序的通信方法。本质是一种先进先出的数据结构。

MQ将消息持久化后,发送Ack消息给Client,此处有可能因为网络问题导致Ack消息无法发送到Client,那么Client在等待超时后,会重传消息;

消息传输保证层级?

At most once:最多一次。消息可能会丢失,但不会重复传输。

At least once:最少一次。消息绝不会丢失,但可能会重复传输。

Exactly once:  恰好一次,每条消息肯定仅传输一次。

生产者如何将消息可靠投递到MQ?

1.Client发送消息给MQ

2.MQ将消息持久化后,发送Ack消息给Client,此处有可能因为网络问题导致Ack消息无法发送到Client,那么Client在等待超时后,会重传消息;

3.Client收到Ack消息后,认为消息已经投递成功。

MQ如何将消息可靠投递到消费者?

1.MQ将消息push给Client(或Client来pull消息)

2.Client得到消息并做完业务逻辑

3.Client发送Ack消息给MQ,通知MQ删除该消息,此处有可能因为网络问题导致Ack失败,那么Client会收到重复消息,这里就引出消费幂等的问题;

4.MQ将已消费的消息删除

来自 <必知必会 RabbitMQ面试题 33道(附答案)_田维常的博客-CSDN博客>

【消息队列MQ使用场景及测试点总结】相关推荐

  1. 消息队列的使用场景_消息队列MQ的特点、选型及应用场景

    一.什么是消息队列 消息队列(Message Queue,简称MQ),指保存消息的一个容器,本质是个队列. 消息(Message)是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可 ...

  2. 消息中间件系列(四):消息队列MQ的特点、选型、及应用场景详解

    前面集中谈了分布式缓存Redis系列: 高并发架构系列:分布式锁的由来.特点.及Redis分布式锁的实现详解 高并发架构系列:Redis并发竞争key的解决方案详解 高并发架构系列:Redis缓存和M ...

  3. java队列_RPC远程调用和消息队列MQ的区别

    RPC和MQ同样都是用于分布式系统的两个很重要的技术,都有服务提供者.消费者的概念,可在一定程度上对系统进行解耦.但两者之间还是有区别的,本篇简单介绍~ 一.RPC RPC(Remote Proced ...

  4. 详解RPC远程调用和消息队列MQ的区别

    谈到分布式架构,就不得不谈到分布式架构的基石RPC. 什么是RPC RPC(Remote Procedure Call)远程过程调用,主要解决远程通信间的问题,不需要了解底层网络的通信机制. RPC服 ...

  5. 消息队列MQ夺命连环11问:kafka、rabbitmq、rocketmq、activemq

    <消息队列MQ如何保证消息的幂等性> <RabbitMQ架构> <ZeroMQ简介:一种高性能的异步消息传递库> <Rocketmq原理&最佳实践&g ...

  6. 消息队列的使用场景和使用技巧

    2019独角兽企业重金招聘Python工程师标准>>> 一.消息队列的使用场景 1.应用解耦 假设商品和结算和支付是不同的系统,两个系统之间的通讯可以通过消息队列完成,不需要强制性的 ...

  7. 消息队列的使用场景是什么样的?

    本文从异步.解耦.削峰填谷等核心应用场景,以及消息中间件常用协议.推拉模式对比来解答此问题. 什么是消息中间件 作为一种典型的消息代理组件(Message Broker),是企业级应用系统中常用的消息 ...

  8. 阿里云消息队列MQ学习—阿里云大学视频课

    在刷ACE题的过程中,感觉对于消息队列部分的理解不是很深刻,这里来学习一下. 例行还是先走一遍阿里云大学的一些视频课程扫扫盲,选择如下课程: 阿里消息队列MQ简介:阿里巴巴中间件技术部自主研发的专业消 ...

  9. 消息队列MQ 之 Kafka

    目录 前言 一.消息队列 MQ 为什么需要消息队列(MQ) 使用消息队列的好处 消息队列的两种模式 二.Kafka 概述 Kafka 简介 Kafka 的特性 三 实验 前言 一.消息队列 MQ MQ ...

最新文章

  1. oracle sql判断相等,获取多行相等的人员(Oracle SQL)
  2. php接收ajax转数组
  3. python抓取数据库数据封装成json_用Python将mysql数据导出成json的方法
  4. C#操作Excel文件(转)
  5. 前端工作学习相关网站收集整理
  6. Python按行读取txt文件
  7. English vocabulary-1
  8. php实现单,双向链表,环形链表解决约瑟夫问题
  9. PostgreSQL数据库常用SQL语句
  10. 福利来了,axure8.1注册码
  11. 百度地图做电子围栏总结
  12. matlab资产配置,FOF投资的量化分析:资产配置模型
  13. mysql执行后缀.sql_MySQL命令执行sql文件的两种方法
  14. linux下启动Nacos报错解决:which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
  15. 理光Ricoh Pro 907EX 一体机驱动
  16. android开发手顺3--Package name must have at least two identifiers 原因及解决方法
  17. DM数据守护读写分离集群
  18. cad怎么向下位移_CAD偏移快捷键命令(教你怎么绘制滚轮)
  19. 斗破苍穹文字页游php_《斗破苍穹》官方网站! - 页游 - 可以阅读的网页游戏[YeGame.COM]...
  20. vue生命周期(超详解!)

热门文章

  1. 利用腾讯地图API调用街景
  2. 给右键菜单加入CMD命令行快速通道(适合win7)
  3. ionic -- 仿微信通讯录
  4. 我的第一个开源项目:Java爬虫爬取旧版正方教务系统课程表、成绩表
  5. 《CS信息系统建设和能力服务评估体系》资质的申请条件和流程
  6. 【单片机】裁决三人表决器的设计与制作
  7. vue计算属性-computed-完整写法
  8. 昭衍生物获得新一轮融资,A轮投资方华盖资本已退出直接股东行列
  9. 「教程」游戏开发基础——游戏UI设计基本原则
  10. nexus5 android 7.0,Android 7.0 Nougat正式版刷机教程—nexus5X