Kafka,Mq和Redis作为消息队列使用时的差异有哪些

《Kafka,Mq和Redis作为消息队列使用时的差异有哪些》

Kafka

《Kafka,Mq和Redis作为消息队列使用时的差异有哪些》

kafka是个日志处理缓冲组件,在大数据信息处理中使用。和传统的消息队列相比较简化了队列结构和功能,以流形式处理存储(持久化)消息(主要是日志)。日志数据量巨大,处理组件一般会处理不过来,所以作为缓冲曾的kafka,支持巨大吞吐量。为了防止信息都是,其消息被消防后不直接丢弃,要多存储一段时间,等过期时间过了才丢弃。这是mq和redis不能具备的。

主要特点入下:

巨型存储量: 支持TB甚至PB级别数据。

高吞吐,高IO:一般配置的服务器能实现单机每秒100K条以上消息的传输。

消息分区,分布式消费:能保消息顺序传输。 支持离线数据处理和实时数据处理。

Scale out:支持在线水平扩展,以支持更大数据处理量。

redis

《Kafka,Mq和Redis作为消息队列使用时的差异有哪些》

redis只是提供一个高性能的、原子操作内存键值队,具有高速访问能力,可用做消息队列的存储,但是不具备消息队列的任何功能和逻辑,要作做为消息队列来实现的话,功能和逻辑要通过上层应用自己实现。

MQ,消息队列。

《Kafka,Mq和Redis作为消息队列使用时的差异有哪些》

我们以是RabbitMQ为例介绍。它是用Erlang语言开发的开源的消息队列,支持多种协议,包括AMQP,XMPP, SMTP, STOMP。适合于企业级的开发。

MQ支持Broker构架,消息发送给客户端时需要在中心队列排队。对路由,负载均衡或者数据持久化都有很好的支持。

其他更多消息队列

《Kafka,Mq和Redis作为消息队列使用时的差异有哪些》

还有ActiveMq,ZeroMq等。功能基本上大同小异。专门测结果,并发吞吐TPS比较,ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。

    原文作者:架构师之路
    原文地址: https://www.jianshu.com/p/a4319755c6da
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞