1、为什么MQ能解决高并发环境下的消息堆积问题?

MQ消息如果堆积,消费者不会立马消费所有的消息,不具有实时性,所以可以解决高并发的问题。

性能比较好的消息中间件:Kafka、RabbitMQ,RocketMQ.

2、什么情况下会产生消息丢失的现象?

消息队列满了的情况下。

3、如何解决消息丢失的问题?

(1)生产者可以采用重试机制。因为消费者会不停的消费消息,可以重试将消息放入队列。

如果还是不行,可以将消息记录到数据库,后期做补偿。(不太推荐,不方便)

(2)死信队列,可以理解为备胎。(推荐使用)

即在消息过期,队列满了,消息被拒绝的时候,都可以扔给死信队列。

如果出现死信队列和普通队列都满的情况,此时考虑消费者消费能力不足,可以对消费者开多线程进行处理。

最后:谢谢蚂蚁课堂老师的讲解。

最新文章

  1. Wampserver 2.5 多站点配置方法
  2. Jenkins进阶系列之——18Jenkins语言本地化
  3. oracle分配权限:一个用户访问另一个用户的表
  4. 利用WinPcap模拟网络包伪造飞秋闪屏报文
  5. 关于STM32库中 __IO 修饰符(volatile修饰符,反复无常的意思)
  6. UVa 10561 - Treblecross
  7. html5 canvas图片反色
  8. 构建移动Web应用程序的技术堆栈
  9. [RQNOJ313]波浪数
  10. Javascript 学习笔记 无缝滚动
  11. 已知一指针p,你可以确定该指针是否指向一个有效的对象吗?如果可以,如何确定?如果不可以,请说明原因。
  12. Java经典案例之-“成绩等级划分”
  13. linux的挂载含义
  14. 简单使用普通用户启动tomcat
  15. Problem C: 重复子串(string)
  16. hdu 4455 Substrings(计数)
  17. android so壳入口浅析
  18. LCP 模板
  19. IOS的各种控件(转载,防止遗忘)
  20. [译]Autoprefixer:一个以最好的方式处理浏览器前缀的后处理程序

热门文章

  1. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext
  2. spring3:多数据源配置使用
  3. SM4加密算法实现Java和C#相互加密解密
  4. JavaScript -- 原型:prototype的使用
  5. LVS负载均衡基础介绍及NET、DR模式配置
  6. LeetCode算法题-Count Binary Substrings(Java实现)
  7. Django中的信号
  8. Python开发【内置模块篇】collections
  9. TableExistsException: hbase:namespace
  10. Docker(2):使用Dockerfile创建支持SSH服务的镜像