我们主要调研了几个主流的 mq,kafka、rabbitmq、rocketmq、activemq,选型我们主要基于以下几个点去考虑:

    1. 由于我们系统的 qps 压力比较大,所以性能是首要考虑的要素。
    2. 开发语言,由于我们的开发语言是 java,主要是为了方便二次开发。
    3. 对于高并发的业务场景是必须的,所以需要支持分布式架构的设计。
    4. 功能全面,由于不同的业务场景,可能会用到顺序消息、事务消息等。

    基于以上几个考虑,我们最终选择了 RocketMQ。

    Kafka RocketMQ RabbitMQ ActiveMQ
    单机吞吐量 10 万级 10 万级 万级 万级
    开发语言 Scala Java Erlang Java
    高可用 分布式架构 分布式架构 主从架构 主从架构
    性能 ms 级 ms 级 us 级 ms 级
    功能 只支持主要的 MQ 功能 顺序消息、事务消息等功能完善 并发强、性能好、延时低 成熟的社区产品、文档丰富