RocketMQ笔记

科普:

  • 把数据放到消息队列叫做生产者
  • 从消息队列里边取数据叫做消费者

一、为什么要用消息队列?

消息队列主要有三大用途 :解耦、异步、削峰,是消息队列最主要的三大作用。

二、为什么选择RocketMQ

选择中间件的可以从这些维度来考虑:可靠性,性能,功能,可运维行,可拓展性,社区活跃度。目前常用的几个中间件,ActiveMQ作为"老古董",市面上用的已经不多,其它几种:

  • RabbitMQ:

  • 优点:轻量,迅捷,容易部署和使用,拥有灵活的路由配置

  • 缺点:性能和吞吐量不太理想,不易进行二次开发

  • RocketMQ:

  • 优点:性能好,高吞吐量,稳定可靠,有活跃的中文社区

  • 缺点:兼容性上不是太好

  • Kafka:

  • 优点:拥有强大的性能及吞吐量,兼容性很好

  • 缺点:由于"攒一波再处理"导致延迟比较高

我们的系统是面向用户的C端系统,具有一定的并发量,对性能也有比较高的要求,所以选择了低延迟、吞吐量比较高,可用性比较好的RocketMQ。

三.RocketMQ有什么优缺点?

RocketMQ优点:

  • 单机吞吐量:十万级

  • 可用性:非常高,分布式架构

  • 消息可靠性:经过参数优化配置,消息可以做到0丢失

  • 功能支持:MQ功能较为完善,还是分布式的,扩展性好

  • 支持10亿级别的消息堆积,不会因为堆积导致性能下降

  • 源码是Java,方便结合公司自己的业务二次开发

  • 天生为金融互联网领域而生,对于可靠性要求很高的场景,尤其是电商里面的订单扣款,以及业务削峰,在大量交易涌入时,后端可能无法及时处理的情况

  • RoketMQ 在稳定性上可能更值得信赖,这些业务场景在阿里双11已经经历了多次考验,如果你的业务有上述并发场景,建议可以选择RocketMQ

RocketMQ缺点:

  • 支持的客户端语言不多,目前是Java及c++,其中c++不成熟

  • 没有在 MQ核心中去实现JMS等接口,有些系统要迁移需要修改大量代码

相关推荐
YJlio8 分钟前
Active Directory 工具学习笔记(10.11):AdRestore 实战脚本与命令速查——从事故回滚到合规留痕
java·笔记·学习
whale fall15 分钟前
【雅思】王陆语料库11.3
笔记·学习
d111111111d26 分钟前
什么是野指针,在STM32中如何避免野指针问题
笔记·stm32·单片机·嵌入式硬件·学习
yudas29 分钟前
pcie笔记
笔记
YANshangqian31 分钟前
NoteGen(Markdown笔记)
笔记
regret~33 分钟前
【笔记】创建systemctl服务
linux·服务器·笔记
诸葛思颖34 分钟前
Beta 分布学习笔记
笔记·学习·概率论
北岛寒沫35 分钟前
北京大学国家发展研究院 经济学辅修 经济学原理课程笔记(第六课 生产可能性曲线、机会成本与交易)
经验分享·笔记
北岛寒沫35 分钟前
北京大学国家发展研究院 经济学辅修 经济学原理课程笔记(第五课 福利经济学)
经验分享·笔记
离离茶36 分钟前
【笔记2-9】ESP32:mqtt通信
笔记