消息队列用途:解耦,异步,削峰

 

解耦:将多个需要消费同样消息的功能解耦开,逻辑互不影响

异步:消息异步处理,提高吞吐

削峰:大批消息快速流入时保证系统整体稳定可用

 

缺点:系统复杂性,消息丢失

系统复杂性:系统引入了额外的复杂性,要额外维护消息队列相关功能,生产,消费等

消息丢失:消息有概率丢失,根据不同架构有不同的原因,如消息还未存储时机器挂掉

 

 

主流MQ:Kafka,RocketMQ,rabbitMQ,ActiveMQ

引用一张知乎大佬的图,原文链接

消息队列 Message Queue 学习笔记

总结:

高吞吐用 kafak 和 RocketMQ,需要功能简单用kafka(如日志),复杂用RocketMQ

rabbitMQ 延迟最低,ActiveMQ 简单易用

 

 

实现原理:

待补充

相关文章: