技术文章 | 从 Apache RocketMQ 和 Kafka 看 Topic 数量对单机性能的影响

来源:互联网 发布:网络增值业务推广方案 编辑:程序博客网 时间:2024/05/21 06:42

本文来源于阿里云-云栖社区,原文点击这里


阿里云消息队列测试小组 出品

上一期我们对比了三类消息产品(Kafka、RabbitMQ、RocketMQ)单纯发送小消息的性能,受到了程序猿们的广泛关注,其中大家对这种单纯的发送场景感到并不过瘾,因为没有任何一个网站的业务只有发送消息。本期,我们就来模拟一个真实的场景:

  • 消息的发送和订阅一定是共存的
  • 要支持多个订阅端订阅自己感兴趣的消息

本期我们将针对 RocketMQ 和 Kafka,对比在上述场景中,究竟谁更胜一筹。在正式开始测试之前,首先要向大家明确2个概念:
 查看上一期文章

 1. Topic为何物

Topic是消息中间件里一个重要的概念,每一个Topic代表了一类消息,有了多个Topic,就可以对消息进行归类与隔离。
可以参照下图的动物园喂食模型,每一种动物都只能消费相对应的食品。

 2. 分区为何物

Kafka和RocketMQ都是磁盘消息队列的模式,对于同一个消费组,一个分区只支持一个消费线程来消费消息。过少的分区,会导致消费速度大大落后于消息的生产速度。所以在实际生产环境中,一个Topic会设置成多分区的模式,来支持多个消费者,参照下图:


 展开全文

阅读全文
0 0
原创粉丝点击