随笔rabbitmq与kafka区别

kafka严格保证了消息队列的顺序。处理活跃的流式数据,大数据量的数据处理上。
rabbitmq不承诺消息的顺序性,并发处理线程,队列中不必排队,若对处理顺序无要求用rabbitmq。用在实时的对可靠性要求较高的消息传递上。

对比项 kafka rabbitmq
开发语言 scala,Java erlang
是否支持多租户 2.x.x支持多租户 支持多租户
是否支持topic优先级 不支持 支持
是否支持消息全局有序 不支持 支持
是否支持消息分区有序 支持 支持
是否内置监控 无内置监控 内置监控
是否支持多个生产者 一个topic支持多个生产者
是否支持多个消费者 一个topic支持多个消费者
是否支持一个分区多个消费者 不支持 不支持
是否支持JMX 支持 不支持(非java语言编写)
是否支持加密 支持 支持
消息队列协议支持 仅支持 支持AMQP、MQTT、STOMP协议
客户端语言支持 支持多语 支持多语言客户端
是否支持消息追踪 不支持 支持消息追踪
是否支持消费者推模式 不支持 支持消费者推模式
是否支持消费者拉模式 支持消 支持消费者拉模式
是否支持广播消息 支持广 支持广播消息
是否支持消息回溯 支持消息回溯,因为消息持久化,消息被消费后会记录offset和timstamp
是否支持消息数据持久化 支持消息数据持久 支持消息数据持久
是否支持消息堆积 支持消息堆积,并批量持久化到磁盘 支持阈值内的消息对接,无法支持
是否支持流量控制 支持控制用户和客户端流量 支持生产者的流量控制
是否支持事务性消息 支持 不支持
元数据管理 通过zookeeper进行管理 支持消息数据持久
默认服务端口 9200 5672
默认监控端口 kafka web console 9000;kafka manager 9000; 15672
网络开销 相对较小 相对较大
内存消耗 相对较小 相对较大
                                                                                               |

你可能感兴趣的:(消息队列)