mq面试题及答案,rabbitmq常见面试题

你们的项目哪里用于mq 1? 使用MQ异步发送优惠券吗?

2 .使用MQ异步发送邮件

3 .使用MQ异步按钮库存,总之执行耗时的代码操作,传递到MQ异步实现接口。

为什么需要使用MQ 1.异步处理(多线程和MQ )

2 .实现去耦

3 .流量削减峰值(MQ可以实现高同时性)

MQ和多线程之间的异步差异1 .多线程异步实现占用cpu资源,可能影响业务线程的执行,导致cpu争用

2 .用MQ方式实现异步是完全解耦,适合大规模的互联网项目

3 .小项目可以使用多线程实现异步,大项目建议使用MQ实现异步;

M问如何避免消息堆积的问题1 .背景:生产者发送消息的速度和我们消费者消费的速度完全不一致。

2 .生产者发送消息的速度根据消费者消耗的速度,我们的消息存储在我们mq服务器端,不会立即被消费者消耗,所以会出现消息存储的问题

3 .注意: rabbitmq消费者我们的消息消费成功后会立即删除。 如果成功消耗kafka或rocketmq邮件,则不会立即删除邮件。

4 .解决方案: a .提高消费者消费速度(为我们的消费者实现集群) b .消费者应该批量获取信息以减少网络传输的次数

MQ停机后会丢失消息吗? 因为我们的信息会持久化在我们的硬盘上;

如何防止MQ消息丢失?

1 .将MQ服务器端的消息持久化到硬盘

2 .生产者消息确认机制必须确认消息成功打印在硬盘上,人工消息传递才能成功。

3 .消费者在必须确认消息消耗成功的rabbitmq中,不能删除消息。 rocketmq或kafka会提交offset生产者的投递消息

mq停机怎么办1 .生产者送达短信记录msg短信内容,后期生产者送达短信失败时

2 .可以基于该日志记录实现补偿机制;

3 .补偿机制(获取此msg日志消息的内容并重试) )。

MQ保证消息顺序一致性的方法1 .大多数项目是不需要保证MQ消息顺序一致性的问题,可能只在特定场景中需要,如MySQL和Redis实现异步数据

2 .所有消息都需要传递到同一mq服务器,存储在相同的分区模型中,最终消费在同一消费者身上。 核心原理:设置相同的消息密钥,计算相同的消息密钥在同一分区中存储散列。 3 .如果保证信息顺序的一致性,就有可能降低消费者的消费速度。

MQ如何保证消息乘幂等问题1 .消费者获取消息,如果消费消息失败,MQ服务器以间隔的形式实现重试策略;

2 .重试过程中,需要保证业务幂等性问题,保证业务不能重复执行。

3 .在全局消息id中,如果业务逻辑已经运行,您可以事先咨询不要重复运行。

4 .我们也需要在数据库数据库数据库水平上保证幂等性问题、唯一主键约束、乐观锁定等。

MQ和Redis如何保证数据完整性问题方案1 :直接删除Redis缓存; 基于方案2:的异步同步更新方案基于canal的订阅binlog同步

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注