找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 254|回复: 0

消息队列常见问题

[复制链接]

373

主题

55

回帖

1944

积分

管理员

积分
1944
发表于 2022-3-23 22:39:44 | 显示全部楼层 |阅读模式
消息队列中的常见问题本质上就是因为网络问题会导致的各种,像
消息投递丢失
消息投递后丢失
消息消费后重复消费


不能保证消息重发
只能保证消息投递成功
防止发送消息的时候由于网络抖动导致发送失败,可以使用消息队列里面的确认机制,但是开启之后效率会有一定影响

如何防止消息投递后丢失,保证消息队列的持久化即可
如何防止消息重复消费,这个问题那就对消息里面涉及到业务的关键参数做一个hash后丢到redis 缓存中,下次消费的时候如果发现存在重复的参数hash直接丢弃即可,也可以通过数据库表的方式记录消费的消息,通过业务上的唯一id去重,一旦重复插入数据库层面就会报错了

消息堆积的解决办法一定是先解决消息堆积的本质问题后,通过增加消费者的方式快速消费挤压的消息。

面试还问到,引入的MQ的问题是什么,其实除了消息的可靠性外,我们还可以从另外一个方面考虑
既然引入了MQ,那么项目就是强依赖于消息中间件,如果说消息中间件挂掉了,那整个项目依赖消息中间件的功能不就不可用了吗?

我们要保证消息中间件的高可用,是不是又要去部署集群呢? 是不是就增加了项目的复杂度呢? 资源也因为需要保证高可用而需要额外消耗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, 2024-9-20 09:20 , Processed in 0.035086 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表