消息队列常见问题

1、消息队列使用场景?

  • 跨系统消息传递

  • 高并发流量削峰

  • 数据分发和异步处理

  • 大数据分析

  • 分布式事务

2、消息队列有什么优缺点?

优点:解耦、削峰、异步

缺点:增加系统复杂度、降低系统可用性、数据一致性

3、如何处理消息的幂等性(重复消费)?

  • 存Redis

  • 存数据库,重复插入报错、先查后存

  • 复杂:生产全局ID存Redis,消费后删除(重复消费)

4、如何避免消息丢失?(保证消息的可靠传输)

  • 生产者消息丢失

    开启confirm机制,失败重发

  • 消息队列消息丢失

    消息元数据持久化 + 消息队列持久化

  • 消费者消息丢失

    手动应答,数据处理成功后返回 ACK

5、消息积压怎么处理?

  1. 修复消费者

  2. 创建大一些的临时队列

  3. 创建转发服务,将积压数据转发到临时队列

  4. 创建临时消费者消费临时队列

  5. 积压数据处理完毕后,恢复原始架构

  6. 新建程序将丢失数据查出,批量重导,发送到消息队列

6、如何保证消息队列高可用?

  1. 生产者开启ACK

  2. 消息队列持久化消息,镜像集群模式

  3. 消费者手动ACK

7、消息队列对比

Kafaka: 适用于大型项目,设置集群,不支持事务

RabbitMq:适用于中小型项目,兼容性很好,spring 团队开发

RocketMQ:阿里团队开发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值