消息中间件rocketMQ,kafka,activeMQ,rabbitMQ,zeroMQ对比选型

mq | 2019-09-13 10:02:39

mq消息中间件有很多,rocketMQ,kafka,activeMQ,rabbitMQ,zeroMQ,等等,消息中间件的选型却很难,因为不像选数据库,或选mybaits或hibernate一样,因为没有那么多的区别,但是选一样东西首先要知道,没有最好,只有最适合,所以根据你的业务需求来选就对了。


1.活跃度

rocketMQ是阿里的,kafka,RabbitMQ优点又比较突出,目前用的人比较多。


2.持久化

ZeroMq不支持消息持久化,ActiveMQ和RabbitMQ,rocketMq等都支持。


3.分布式

activeMQ、rabbitMQ与 kafka、rocketMQ有很大的区别就是前2个只支持主从模式,后2个是分布式消息系统,支持分布式。


4.性能

如果消息性能要求高,用rocketMQ与kafka可以更优


5.开源

rocketMQ部分开源,而且是java语言开放的。


6.功能

RocketMQ功能比较强,消息重试,消息查询等。





下表是一个方便的快速参考,可以一目了然地发现RocketMQ及其最受欢迎的替代品之间的差异。

消息产品客户端SDK协议和规范订购消息预定消息批量消息广播消息邮件过滤器
ActiveMQJava,.NET,C ++等推模型,支持OpenWire,STOMP,AMQP,MQTT,JMS独家消费者或独家排队可以确保订购支持的不支持支持的支持的
kafkaJava,Scala等拉模型,支持TCP确保在分区内对消息进行排序不支持支持,使用异步生产者不支持支持,您可以使用Kafka Streams过滤邮件
RocketMQJava,C ++,Go拉模型,支持TCP,JMS,OpenMessaging确保严格的消息排序,并可以优雅地扩展支持的支持,使用同步模式以避免消息丢失支持的支持的基于SQL92的属性过滤器表达式





消息产品服务器触发重新传递消息存储消息追溯消息优先级高可用性和故障转移消息跟踪组态管理和操作工具
ActiveMQ的不支持使用JDBC和高性能日志(例如levelDB,kahaDB)支持非常快速的持久性支持的支持的支持,根据存储,如果使用kahadb,则需要ZooKeeper服务器不支持默认配置为低级别,用户需要优化配置参数支持的
卡夫卡不支持高性能文件存储支持的偏移量表示不支持支持,需要ZooKeeper服务器不支持Kafka使用键值对格式进行配置。可以从文件或以编程方式提供这些值。支持,使用terminal命令公开核心指标
RocketMQ支持的高性能和低延迟的文件存储支持的时间戳和偏移量2表示不支持支持的Master-Slave模型,没有其他套件支持的开箱即用,用户只需要注意几个配置支持的富Web和终端命令,以公开核心指标



 













登录后即可回复 登录 | 注册
    
关注编程学问公众号