• 消息队列常见问题


    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:阿里团队开发

  • 相关阅读:
    基于SSM的美妆购物平台
    恢复Redis被误删的数据
    C++DAY44
    Autosar基础——DLT(DiagnosticLogAndTrace)
    github ations 入门使用
    旋转框目标检测mmrotate v0.3.1 学习配置
    YUV图片常见格式
    重制版 day 17 正则表达式
    差点被这波Handler 面试连环炮带走~
    04 光栅图形学算法-- 屏幕映射
  • 原文地址:https://blog.csdn.net/qq_42151956/article/details/127106548