activeMq | rabbitMq | rocketMq | Kafka | |
---|---|---|---|---|
性能 | 6000/s单机 | 12000单机 | 十万级别 | 百万级别 |
持久化 | 支持 性能会下降 | 支持 性能会下降 | 天生支持 | 天生支持 |
语言支持 | 主流都支持 | 主流都支持 | 只支持java | 主流都支持 |
综合比较 | 没有大规模应用 不推荐 | 中小项目推荐使用 高可用 管理界面好用 缺点:1.内部机制很难了解,不方便代码改写 2.集群不支持动态扩容 | 模型简单 接口易用 大规模使用实践 性能比较好 缺点:只支持java | 天生分布式 性能最好 大数据使用 缺点:运维从成本大 带宽有一定要求 |
面试回答各个中间件的对比整理?(总分总)
总:常见的消息中间件一共有4种,activeMq,rabbitmq,rocketMq,kafka
其中:activeMq 是一般不推荐使用的,一个是吞吐量比较低,只支持到万级,更重要的是activeMq没有经过大规模的应用。
rabbitMq特点是:消息可靠性⾼,功能全⾯,还支持管理页面查看;
缺点:1.吞吐量是在万级,消息挤压会严重性能
2.内部语言使用erlang语言,比较难定制
场景:并发规模不是很大的场景,中小公司使用。
rocketMq 特点是:十万级吞吐量,功能⾮常全⾯。阿里出品,大规模应用实践过
缺点:只支持java
场景:几乎所有场景
kafka特点是:高吞吐百万级别,高性能,集群高可用
缺点:功能比较单一,不支持事务类操作。会丢数据
场景:日志处理,数据采集场景。大数据场景
总:通常情况在rabbitmq,activemq,kafka做选型,其中kafka更适用与大数据,rabbitMq和rocketMq功能更完善,rabbitMq吞吐量相对比较低,rocketMq吞吐量十万级别,rabbitMq适用于中小企业,rockeMq适用于大企业定制开发。