MQ,其实目的都是同样,就是应对系统的并发能够实现消峰和解耦的做用,相似于建立了一个线程异步操做,这一点能够了解一下一款优秀的并发框架(Disruptor),听说是每秒能够处理十万级数据,node
目前据本人了解,有一个开源分布式事务框架Hmily使用了这个,实现了异步处理解耦的做用,也省去了很多代码并发
言归正传,说回MQ,框架
本人就最近使用rabbitmq有感,发现rabbitmq在应对高并发的时候,效率彷佛不敌rocketmq,异步
rocketmq有几大优势:分布式
高并发高并发
- ROCKETMQ/ONS消费区处理很快,快速拉取消息
- rabbitmq彷佛略慢一点,
高可用线程
-
- 它两均可以作集群,比较适用于分布式系统
- 阿里双十一用的是rocketmq做为异步处理,天然很优秀,有亿级消息堆积能力,这点可能不少mq就已经作不到了
所须要的节点数量server
- ROCKETMQ集群环境下,虽然不依赖zk,可是须要name server,至少2个节点,2个MASTER,就是4个
- RABBITMQ集群环境下,不依赖zk,只要3个erlang node,就是3个
全局顺序消费rabbitmq
- ROCKETMQ/ONS同上,只是变成了另一个术语
- RABBITMQ能大体保证全局顺序消费
- 以上所讲的都是消息没有被拒绝或者消息处理失败从新回到队列的状况
事务
队列
- RocketMQ支持事务消息,一旦消费失败,同一个事务会进行回滚
- rabbitmq不支持
其余功能-流控
其余功能-优先级队列