• 中间件MQ面试题之Rabbitmq


    Rabbitmq 面试题

    (1)RabbitMQ 如何确保消息不丢失?

    消息持久化,当然前提是队列必须持久化

    RabbitMQ确保持久性消息能从服务器重启中恢复的方式是,将它们写入磁盘上的 —个持久化日志文件,当发布一条持久性消息到持久交换器上时,RabbitMQ会在消 息提交到日志文件后才发送响应。一旦消费者从持久队列中消费了一条持久化消 息,RabbitMQ会在持久化日志中把这条消息标记为等待垃圾收集。如果持久化消 息在被消费之前RabbitMQ进行了重启,那么RabbitMQ会自动重建交换器和队列(以及绑定),并重新发布持久化日志文件中的消息到合适的队列。

    (2)RabbitMQ的五种消息模型是哪几个?

    这五种消息模型各有特点,适用于不同的业务场景和需求。在实际应用中,可以根据具体情况选择合适的消息模型进行消息传递和处理。

    简单模式(Simple Mode)

    生产者将消息发送到队列,消费者从队列中获取消息并处理。这是最基本的消息模型,包含一个生产者、一个消费者和一个队列。生产者向队列里发送消息,消费者从队列中获取消息并消费

    工作队列模式(Work Queue Mode)

    生产者将消息发送到队列,多个消费者从队列中获取消息并处理。每个消息只能被一个消费者处理,可以实现任务的并行处理。当消费者获取消息处理耗时任务时,空闲的消费者从队列中获取并消费消息

    测试:

    1、使用入门程序,启动多个消费者。

    2、生产者发送多个消息。

  • 相关阅读:
    2019最全BAT资深Java面试题答案合集,建议收藏~
    多维下numpy实现torch下的log_softmax
    谷粒学苑 —— 8、课程管理:课程发布页面3 —— 信息确认及发布
    Visual Studio 安装离线插件 vsix 及常用插件
    html picture元素
    Flex & Bison 开始
    Java 基础入门
    习题1.23
    RocketMQ 入门
    软件重点9 网络基础
  • 原文地址:https://blog.csdn.net/knight_zhou/article/details/136671701