Loading

消息队列高频面试题

一、什么是MQ,为什么要使用MQ?

消息队列,即MQ,Message Queue

为什么使用MQ?

1)异步处理

用户下单,发消息给商品微服务减库存,可以先行响应

生成报告,发消息给报告系统,可以先行响应

2)解耦

在审批中需要发送和更新钉钉的工作通知与代办,这部分解耦出去

3)削峰

系统处理不过来的时候,排队处理

4)延时队列

在销售模块中,分配下去的客户如果在一定时间后仍没签约成功,客户将被回收至公海池等待再次分配

在问卷系统中,获奖者15分钟内未填写收货信息则取消资格、释放商品

二、如何防止消息丢失

1)生产者端创建一个消息记录表,每发送一条消息则插入一条数据,此时状态为未消费

2)消费者消费消息后向生产者发送一个请求,修改当前消息记录的状态为已消费

3)每隔5分钟,生产者查找消息记录表中超过5分钟未消费的记录,重新发送,但不超过3次

三、如何保证消息不被重复消费

1)消费者端创建一个消息记录表,每消费一条消息则插入一条数据

2)在消费消息之前先查询是否已消费过当前消息,已消费的消息则丢弃

posted @ 2022-06-21 22:02  多久会在  阅读(89)  评论(0)    收藏  举报