springboot+rabbitmq两小时入门(十):rabbitmq面试题

1、生产者发送失败怎么办,消费者消费失败怎么办?

参考springboot+rabbitmq两小时入门(七):生产者发送失败和消费者消费失败处理

2、如何保证消息按顺序执行

参考如何保证消息按顺序执行

3. 如何避免消息重复投递或重复消费?

在消息生产时,MQ内部针对每条生产者发送的消息生成一个inner-msg-id,作为去重和幂等的依据(消息投递失败并重传),避免重复的消息进入队列;在消息消费时,要求消息体中必须要有一个bizId(对于同一业务全局唯一,如支付ID、订单ID、帖子ID等)作为去重和幂等的依据,避免同一条消息被重复消费(幂等可以用redis实现,在消费者中把bizid setNX到redis中,若setNX返回false,表示重复消费,则直接return不做任何消费逻辑处理)。

4、消息基于什么传输?

由于TCP连接的创建和销毁开销较大,且并发数受系统资源限制,会造成性能瓶颈。RabbitMQ使用信道的方式来传输数据。信道是建立在真实的TCP连接内的虚拟连接,且每条TCP连接上的信道数量没有限制。

5、如何确保消息不丢失?

将交换器、队列的durable属性设置为true,消息的delivery mode属性设置为“2”,这样交换器、队列、消息都持久化了到硬盘上了,不论宕机还是停电消息都不会丢失。

7、使用RabbitMQ有什么好处?

应用解耦、异步处理、消息分发、流量削峰

8、主流mq区别?

ActiveMQ: 成熟、万级吞吐量。

RabbitMQ: 万级吞吐量、低延迟。

kafka: 10万级吞吐量、仅仅提供较少的核心功能

RocketMQ: 10万级吞吐量(商业版的RocketMQ号称地表最强)、简单易用

9、如何流量削峰?

采用rabbitmq的拉模式批量拉取,然后根据数据库能力分页执行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值