消息队列MQ面试知识点( java面试背诵随笔 背诵第九天)

本文探讨了RabbitMQ作为消息队列的优势,如异步处理、应用解耦和流量控制,同时揭示其缺点如系统可用性降低和复杂性增加。比较了Kafka、ActiveMQ、RocketMQ在高并发场景中的优劣,并聚焦于消息重复问题的解决方案。RabbitMQ的应用场景、工作模式以及其在企业中的角色也被详细阐述。
摘要由CSDN通过智能技术生成

1、为什么使用MQ?MQ的优点

        简答 :
                异步处理 - 相比于传统的串行、并行方式,提高了系统吞吐量。
                
                应用解耦 - 系统间通过消息通信,不用关心其他系统的处理。
                流量削锋 - 可以通过消息队列长度控制请求量;可以缓解短时间内的高并发请 求。
                日志处理 - 解决大量日志传输。
                消息通讯 - 消息队列一般都内置了高效的通信机制,因此也可以用在纯的消息通 讯。比如实现点对点消息队列,或者聊天室等。
        记忆:
                主要是:解耦、异步、削峰。

2、消息队列有什么优缺点?RabbitMQ有什么优缺点?

        优点上面已经说了,就是在特殊场景下有其对应的好处 解耦 异步 削峰
        缺点有以下几个:
        系统可用性降低
                本来系统运行好好的,现在你非要加入个消息队列进去,那消息队列挂了,你的 系统不是呵呵了。因此,系统可用性会降低;
        系统复杂度提高
                加入了消息队列,要多考虑很多方面的问题,比如:一致性问题、如何保证消息 不被重复消费、如何保证消息可靠性传输等。因此,需要考虑的东西更多,复杂 性增大。
        
        一致性问题
                A 系统处理完了直接返回成功了,人都以为你这个请求就成功了;但是问题是, 要是 BCD 三个系统那里,BD 两个系统写库成功了,结果 C 系统写库失败了, 咋整?你这数据就不一致了。
        
        所以消息队列实际是一种非常复杂的架构,你引入它有很多好处,但是也得针对 它带来的坏处做各种额外的技术方案和架构来规避掉,做好之后,你会发现,妈 呀,系统复杂度提升了一个数量级,也许是复杂了 10 倍。但是关键时刻,用, 还是得用的。
3、 Kafka、ActiveMQ、RabbitMQ、RocketMQ 有 什么优缺点?
        
        ActiveMQ是老牌的消息中间件,国内很多公司过去运用的还
是非常广泛的,功能很强大。
问题在于没法确认ActiveMQ可以支撑互联网公司的高并发、高负载以及高
吞吐的复杂场景,在国内互联网公司落地较少。而且使用较多的是一些传统企
业,用ActiveMQ做异步调用和系统解耦。

4、消息的重复问题

        造成消息重复的根本原因是:网络不可达。 所以解决这个问题的办法就是绕过这个问题。那么问题就变成了:如果消费端收 到两条一样的消息,应该怎样处理?
        消费端处理消息的业务逻辑保持幂等性。只要保持幂等性,不管来多少条重复消 息,最后处理的结果都一样。保证每条消息都有唯一编号且保证消息处理成功与 去重表的日志同时出现。利用一张日志表来记录已经处理成功的消息的 ID,如 果新到的消息 ID 已经在日志表中,那么就不再处理这条消息。

5、什么是RabbitMQ?

        RabbitMQ是一款开源的,Erlang编写的,基于AMQP协议的消息中间件

6、rabbitmq 的使用场景

        ( 1)服务间异步通信
        (2)顺序消费
        (3)定时任务
        (4)请求削峰

7、RabbitMQ的工作模式

        一.simple模式(即最简单的收发模式)

 

        1.消息产生消息,将消息放入队列
        2.消息的消费者(consumer) 监听 消息队列,如果队列中有消息,就消费掉,消息被 拿走后,自动从队列中删除(隐患 消息可能没有被消费者正确处理,已经从队列中 消失了,造成消息的丢失,这里可以设置成手动的ack,但如果设置成手动ack,处 理完后要及时发送ack消息给队列,否则会造成内存溢出)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

V_HttL2021314

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值