本文将粗略的介绍一下kafka以及kafka的一些基本概念,这些概念都是学习和使用kafka时必须理解和掌握的。以后的文章中会通过具体的使用场景详细的介绍。欢迎各位网友批评指正,转发请注明出处。

1.kafka是什么

根据官方的解释,kafka是一个分布式的流处理平台。Kafka是为了解决LinkedIn数据管道问题应运而生的。它的设计目的是提供一个高性能的消息系统,可以处理多种数据类型,并能够实时提供纯净且结构化的用户活动数据和系统度量指标。Kafka提供了一个类似于MQ的发布/订阅消息系统。

2.kafka的优势是什么?为什么选择kafka?

2.1.支持多个生产者

kafka可以无缝的支持多个生产者,不管客户端使用的是单个主题还是多个主题。

2.2.支持多个消费者

kafka也支持多个消费者从一个单独的消息流上读取数据,而且消费者之间互不影响。

2.3.基于磁盘的消息存储

kafka收到消息之后将消息存储在磁盘(用户可以根据实际情况设置数据在磁盘保存多长时间),用户可以根据实际情况从kafka取数据,比如:不重要的数据可以错峰读取以减轻服务的压力;当消费者因不同的原因宕机时,只要能在设置的数据保存周期内修复数据就不会丢失。

2.4.可伸缩性

kafka是一个分布式的消息系统,可以根据数据量的大小来决定broker的数量,并且支持在线扩展。

2.5.高性能

通过横向扩展生产者、消费者、和broker,kafka可以轻松处理巨大的消息流,并且还能保证亚秒级的消息延时。

3.kafka的一些基本概念

3.1.主题

kafka的消息通过主题进行分类,主题就好比数据库中的表,或者文件系统中的文件夹。好比学校的食堂,下课之后要去食堂吃饭您首先的决定去哪个食堂(假如学校有多个食堂)。

3.2.分区

一个主题可以被分为若干个分区,一个分区就是一个提交日志。消息以提交的方式写入分区,然后以先进先出的顺序读取。好比到了食堂你要决定在哪个窗口排队打饭。

3.3.生产者

生产者就是消息的创建者,也就是数据的源头,生产者通主题将消息写入kafka。好比厨师

3.4.消费者

消费者从kafka中通过主题来读取消息。好比去食堂打饭的你。

3.5.broker

一个独立的kafka服务器就是一个broker,broker接收生产者的消息,为消息设置偏移量,并提交消息保存到磁盘。同时broker为消费者提供服务,对消费者读取数据的请求做出反应,并且将正确的数据返回给消费者。

3.6.kafka集群

多个broker可以组成一个kafka集群,并通过zookeeper来管理kafka集群,一个集群中需要有一个broker来监控和管理集群,这个broker被称为首领,当首领挂了之后通过选举的方式产生新的首领。

4.kafka消息处理过程

生产者通主题将消息写入kafka集群,kafka首领根据用户的配置的消息副本的数量来决定集群中保存几份消息,消费者通过kafka主题从kafka集群读取消息。如下图:

Kafka系列文章之基本概念

 

 

 

相关文章: