【图文详细 】Kafka消息队列——Kafka是什么

版权声明:版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/qq_42246689/article/details/84944653

1.1、Kafka的概述

在流式计算中,Kafka一般用于数据的缓存,Storm通过消费Kafka的数据进行计算。

经典架构:Flume + Kafka + Storm/SparkStreaming + Redis 

Apache Kafka最初由LinkedIn开发的基于发布订阅的分布式的消息系统,由Scala/Java编写,并于 2011 年初开源。2012 年 10 月从 Apache Incubator 毕业,现在是 Apache 软件基金会负责维护的一个顶级开源消息系统项目。该项目的目标是为处理实时数据提供一 个统一、高通量、低等待的平台。它以可水平扩展和高吞吐率而被广泛使用。目前越来越多 的开源分布式处理系统如 Cloudera、Apache Storm、Spark 都支持与 Kafka 集成。 

Kafka 是一个分布式消息队列:具有生产者、消费者的功能。它提供了类似于 JMS 的特性, 但是在设计实现上完全不同,此外它并不是 JMS 规范的实现。 

Kafka对于消息保存时根据以Topic进行归纳,发送消息者称为Producer,消息接受者称为Consumer,此外 Kafka 集群有多个 Kafka 实例组成,每个实例(server)成为 broker。 

无论是Kafka集群,还是Producer和Consumer都依赖于ZooKeeper集群保存一些meta信息, 来保证系统可用性 
 
Kafka 官网:http://kafka.apache.org/ 

1.2、Kafka的特性

高吞吐量、低延迟::kafka 每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个 topic 可以分多个 partition,consumer group 对 partition 进行消费操作 

可扩展性:kafka 集群支持热扩展 

持久化、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失 

容错性:允许集群中节点失败(若副本数量为 n,则允许 n-1 个节点失败)

高并发:支持数千个客户端同时读写

猜你喜欢

转载自blog.csdn.net/qq_42246689/article/details/84944653