RocketMQ 关键特性

  1. 云栖社区>
  2. 博客>
  3. 正文

RocketMQ 关键特性

尘央 2016-12-09 09:53:01 浏览8984
展开阅读全文

Apache RocketMQ之所以能在众多的消息中间件中脱颖而出,能吸引数千企业用户与RocketMQ的关键特性是分不开的,本文详细介绍RocketMQ中的关键特性。

一、过万的单机队列数

诸如Kafka之类的消息中间件,在队列数上升时性能会产生巨大的损失,RocketMQ之所以能单机支持上万的持久化队列与其独特的存储结构分不开。

screenshot.png

如上图所示,所有的消息数据单独存储到一个Commit Log,完全顺序写,随机读。对最终用户展现的队列实际只存储消息在Commit Log的位置信息,并且串行方式刷盘。

这样做的好处如下:

  1. 队列轻量化,单个队列数据量非常少。
  2. 对磁盘的访问串行化,避免磁盘竟争,不会因为队列增加导致IOWAIT增高。

每个方案都有缺点,它的缺点如下:

  1. 写虽然完全是顺序写,但是读却变成了完全的随机读。
  2. 读一条消息,会先读Consume Qu

网友评论

登录后评论
0/500
评论
尘央
+ 关注