RocketMQ笔记

科普:

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

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

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

二、为什么选择RocketMQ

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

  • RabbitMQ:

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

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

  • RocketMQ:

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

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

  • Kafka:

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

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

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

三.RocketMQ有什么优缺点?

RocketMQ优点:

  • 单机吞吐量:十万级

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

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

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

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

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

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

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

RocketMQ缺点:

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

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

相关推荐
高如风11 小时前
rocketmq基础
rocketmq
吴梓穆11 小时前
UE5学习笔记 FPS游戏制作38 继承标准UI
笔记·学习·ue5
V---scwantop---信12 小时前
英文字体:大胆都市街头Y2Y涂鸦风格品牌海报专辑封面服装字体 Chrome TM – Graffiti Font
笔记·字体
Moonnnn.12 小时前
运算放大器(四)滤波电路(滤波器)
笔记·学习·硬件工程
ChinaRainbowSea12 小时前
1. 初始 RabbitMQ 消息队列
java·中间件·rabbitmq·java-rabbitmq
吴梓穆12 小时前
UE5学习笔记 FPS游戏制作37 蓝图函数库 自己定义公共方法
笔记·学习·ue5
吴梓穆12 小时前
UE5学习笔记 FPS游戏制作41 世界模式显示UI
笔记·学习·ue5
s_little_monster13 小时前
【Linux】进程信号的捕捉处理
linux·运维·服务器·经验分享·笔记·学习·学习方法
RedMery14 小时前
论文阅读笔记:Denoising Diffusion Implicit Models (4)
论文阅读·笔记
go_bai14 小时前
Linux环境基础开发工具——(2)vim
linux·开发语言·经验分享·笔记·vim·学习方法