mq面试题

常用的mq中间件有哪些

老牌的RabbitMQ、ActiveMQ,炙手可热的Kafka、阿里的RocketMQ

对mq中间件的理解

1、MQ中间件由Broker核心服务器、生成者Producer、消费者Consumer、消息体Message、主题Topic、队列Queue组成。
2、生产者生产消息并发送给broker
3、消费者从brock获取消息并进行业务处理
4、MQ中间件分为点对点p2p和发布/订阅模式
5、点对点模式使用queue作为通信载体,队列支持多个消费者,但是每个消息只能被一个消费者消费。
5、发布/订阅模式使用主题topic作为通信载体,也支持多个消费者,但是每个消息可以被多个消费者使用。

mq的应用场景

1、减低服务之间的耦合性。跨端项目,我们不能直接访问其它端的数据库表,可通过接受MQ的方式获取我们需要的数据。
3、扩展性好。发布/订阅式消息队列支持多个消费者,一端产生的消息可以在多处被消费。
4、冗余性好。有时候服务出现异常,会导致MQ堆积,但是这些数据不会丢失,服务重启后,仍可以继续消费这些消息。
5、可起到过载保护功能。约课高峰期服务访问量会剧增,使用消息队列能使关键组件顶住突发的访问压力,而不会因为突发的请求使服务崩溃。
6、缓存,调节系统响应时间。
7、异步通信。消息队列提供异步处理机制,就是把消息放到队列中,什么时候用的时候再处理。我们公司的ELK日志收集平台消费的kafka消息就是异步处理机制。
8、数据流处理。ELK日志收集平台消费的kafka消息,避免了采集量大于日志清洗、存储的能力时,日志系统处理不及时造成系统死机引起的日志丢失。

mq如何测试

模拟发送MQ后,从MQ管理平台能看到mq生产和消费记录,mq消费间隔一段时间后,查看相关数据有没有落库。

mq 是否能保证消息不重复?

1、绝大多数情况下,消息是不重复的。作为一款分布式消息中间件,在网络抖动、应用处理超时等异常情况下,无法保证消息不重复,但是能保证消息不丢失;
2、需要业务方自己实现去重逻辑,不推荐使用msgid来做去重,因为msgid在绝大部分情况下,是不会重复,不排除极端情况可能会出现重复,或者多个集群之间出现重复msgid;
3、可以使用订单编号等唯一的作为唯一标识来去重。

mq消息已经发出,但是消费端没有收到,怎么去查?

使用mq消息平台,使用 Topic 按时间范围进行查询

mq消费失败如何重新消费消息?

消费mq的代码如果出现null返回null或者异常等,消息都会走重试流程,默认重试 16 次(重试次数可以自定义),如果重试 16 次后,仍然失败,则消息丢弃;
消息重试间隔可以通过context控制,如果不控制,会越来越长。

mq消费失败怎么排查?

1、检查topic配置
2、检查生成者、消费者的对应关系配置
3、确认生产者生成了消息
4、查看日志信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值