mq经典面试比看

mq选型对比、面试必问

mq的特点:
1、解耦合
2、异步
3、削峰
优点:1、对结构复杂、设计系统多的操作进行解耦操作,降低系统的操作复杂度、降低系统的维护成本。
 2、对一个可以进行异步操作的一些系统操作进行异步,减小操作的响应时间,提供更好的用户体验。
 3、可对高流量进行削峰,保证系统的平稳运行。
缺点:1、系统可用性降低。比如在系统中引入MQ,那么万一MQ挂了怎么办呢?一般而言,引入的外部依赖越多,系统越脆弱,每一个依赖出问题都会导致整个系统的崩溃。
 2、系统复杂度提高。需要考虑MQ的各种情况,比如:消息的重复消费、消息丢失、保证消费顺序等等…
 3、数据一致性问题。比如A系统已经给客户返回操作成功,这时候操作BC都成功了,操作D却失败了,导致数据不一致。
特性

在这里插入图片描述
选型考虑角度:功能上,在其次就是性能上角度
选型角度回答:根据项目组团队,根据项目功能,在考虑生态;{
消息会不会丢失;消息是不是有序的}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当然,下面是MQ(消息队列)面试中经常会遇到的6个经典问题: 1. 什么是消息队列(MQ)? 消息队列是一种常用的中间件技术,用于在不同的应用程序之间传递消息。它将消息发送到队列中,然后接收者从队列中接收消息,实现了应用程序之间的解耦。 2. MQ的优点是什么? MQ具有以下几个优点: - 异步通信:发送方发送消息后即可继续处理其他任务,接收方可以在合适的时候处理消息。 - 解耦合:发送方和接收方之间通过消息队列进行通信,彼此不需要直接知道对方的存在,实现了解耦合。 - 削峰填谷:可以通过消息队列平滑处理系统的峰值流量,保证系统的稳定性。 - 可靠性:消息队列通常具备高可靠性和持久化特性,可以确保消息不丢失。 3. RabbitMQ和Kafka有什么区别? RabbitMQ和Kafka是两种常见的消息队列系统,它们有以下区别: - RabbitMQ是一个传统的消息队列系统,采用AMQP协议,支持多种消息模式。适用于实时性要求较高、强一致性的场景。 - Kafka是一个高吞吐量、分布式的日志处理平台,采用发布-订阅模式。适用于大数据量、高并发的场景。 4. 如何保证MQ的高可用性? 保证MQ高可用性的方法主要有以下几种: - 集群部署:通过在多个节点上部署MQ实例,实现故障转移和负载均衡。 - 数据复制:将数据进行复制到多个节点上,确保数据的备份和容灾能力。 - 心跳机制:定期发送心跳检测消息,检测MQ节点的可用性。 - 监控和报警:监控MQ集群的运行状态,及时发现并解决问题。 5. 如何确保MQ的消息不丢失? 确保MQ消息不丢失的方法主要有以下几种: - 持久化:将消息存储到磁盘上,即使MQ节点宕机也能够恢复。 - ACK机制:发送方在发送消息后等待接收方的确认消息(ACK),确保消息被正确接收。 - 消息重试:当发送方发送消息失败时,可以进行重试操作,直到成功为止。 6. 如何保证MQ的顺序性? 保证MQ消息顺序性的方法主要有以下几种: - 单一消费者:每个队列只有一个消费者,确保消息按照顺序被处理。 - 分区顺序:将消息按照某个字段进行分区,同一分区内的消息按顺序处理。 - 消费者缓存:消费者接收到消息后缓存起来,按照顺序处理。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值