1.1 定义
Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。
1.2 消息队列
1.2.1 传统消息队列的应用场景
1.2.2 消息队列的两种模式
(1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除)
消息生产者生产消息发送到Queue中,然后消息消费者从Queue中取出并且消费消息。消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。
(2)发布/订阅模式(一对多,消费者消费数据之后不会清除消息)
消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息会被所有订阅者消费。
1.3 Kafka简介
1.3.1 什么是Kafka ?
Kafka是一个分布式的数据流式传输平台。
在流式计算中,Kafka一般用来缓存数据,Spark通过消费Kafka的数据进行计算。
1)Apache Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目。
2)Kafka最初是由LinkedIn公司开发,并于2011年初开源。2012年10月从Apache Incubator毕业。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。
3)Kafka是一个分布式消息队列。Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)称为broker。
4)无论是kafka集群,还是consumer都依赖于zookeeper集群保存一些meta信息,来保证系统可用性。
1.3.2 Kafka的特点
作为一个数据流式传输平台,kafka有以下三大特点:
类似于消息队列和商业的消息系统,kafka提供对流式数据的发布和订阅
kafka提供一种持久的容错的方式存储流式数据
kafka拥有良好的性能,可以及时地处理流式数据
基于以上三种特点,kafka在以下两种应用之间流行:
①需要在多个应用和系统间提供高可靠的实时数据通道
②一些需要实时传输数据及及时计算的应用
此外,kafka还有以下特点:
Kafka主要集群方式运行在一个或多个可跨多个数据中心的服务器上
Kafka集群将数据按照类别记录存储,这种类别在kafka中称为主题
每条记录由一个键,一个值和一个时间戳组成
大数据之Kafka:Kafka概述
最新推荐文章于 2024-07-23 14:53:02 发布