MQ相关问题

1.0 为什么用MQ

优点:解耦,削峰,异步通信
缺点:增加系统的复杂性,降低系统的可用性
使用消息队列(MQ)的主要原因包括流量消峰、应用解耦、异步处理、实现分布式系统之间的解耦调用、实现异步调用、解决高并发问题等
a:流量消峰‌:在高峰期,通过消息队列可以分散请求,使得系统能够处理更多的请求,避免因请求过多而导致系统崩溃。
b:应用解耦‌:在复杂的系统中,各个子系统之间通过消息队列进行通信,减少了直接的耦合关系,提高了系统的可维护性和可扩展性
c:异步处理‌:通过消息队列实现服务的异步调用,减少了等待时间,提高了系统的响应速度

2.0 MQ如何选择

1:rabbitMQ:优势:轻量,开箱即用,缺点:性能一般(万级),erlang语言扩展以及二次开发成本高,大量消息堆积时,性能特别差
2:kafka:优势:性能高(几十万级),适合处理大量数据的互联网服务的数据收集业务,基于Pull模式处理消息消费,追求高吞吐量,特别适合日志收集和传输。如果业务有高性能、高吞吐量的需求。
不适合在线业务场景,当主题达到上百个时,性能会大幅下降。
3:rocketmq:优势:性能高(几十万级),国内开发社区活跃,二次开发易开发。适合业务场景使用。

3.0 MQ消息丢失问题

MQ分为生产者,MQ服务器,消费者。
丢失原因主要原因:
1:生产者不能正常请求MQ服务器
2:MQ服务器不高可用,导致服务崩
3:消费者没有正常获取MQ服务器的消息
解决方案:
1:生产者向MQ服务器发送消息,需要确定机制,同时需要支持消息重试(消息要有唯一标识,要支持幂等),补偿机制
2:MQ服务需要集群高可用,交换机,队列,数据持久化
3:消费者需要确定机制,同时要支持幂等(生产者补偿/重发)
4:监听MQ服务器消息堆积情况
5:核心数据,增加对账,T+1对账(大数据近实时),生产者+消费者数据对账,确保数据未丢失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值