初识kafka

时间:2020-06-26 16:54:29   收藏:0   阅读:68

1、消息队列介绍

在介绍kafka之前先简单提一下消息队列,或发布与订阅消息系统。这个系统很重要,其特点是消息(数据)的发送者不会直接将消息发送给接受着,发布者将消息发送给系统,然后接收者订阅这个消息,以此来接收消息。就像订阅杂志一样。

消息队列从简单的消息队列或进程之间的通信到多个应用之间到多个系统之间,数据之间的通信,联系越来越多,越复杂,变成多个发布订阅系统。由于维护和使用越发复杂,最终需要将这部分独立出来成为一个单一的集中式的系统,由此kafka出场了。

2、kafka介绍

kafka是分布式,基于发布/订阅的消息系统

2.1 主题和分区

kaka的消息(数据)是通过主题进行分类的。主题类比数据库的表,文件系统中的文件夹。主题会被分为若干个分区,一个分区就是一个提交日志,消息是以追加的方式写入分区,遵循先入先出的原则顺序读取。因为一个主题通常包含多个分区,因此无法保证在整个主题范围内消息是有序的,但可以保证单个分区内是顺序的。kafka通过分区来实现数据冗余和伸缩性,分区可以分布在不同服务器上,意味着一个主题可以跨多个服务器,来提供更强大的性能

2.2 消息和批次

kafka的数据单元称为消息,可以将消息理解为数据库中一行数据。为提高写入效率,消息被分批次写入kafka,批次就是指一组消息,这些消息同属于一个主和分区,以批次的方式传输数据可以减少网络开销,不过这个需要在时间延迟和吞吐量之间做权衡,批次越大,单位时间内处理消息越多,但单个消息的传输时间就越长,时间延迟越高。

2.3 生产者和消费者

在发布订阅系统中有生产者和消费者。生产者负责创建消息,写入数据到主题中,生产者默认将消息均衡的的分布在主题的所有分区中,不过也可以指定分区,通过消息键和分区器实现。消费者订阅之后可以读取消息,消费者可以订阅多个主题,按照顺序读取,通过检查消息的偏移量来判断已经读取过的消息。偏移量是一种元数据,不停递增的数值。

2.4 broker和集群

kafka的服务器被称为broker,broker接收来自生产者的消息,设置偏移量,并提交消息到磁盘持久化。broker也为消费者服务,提供读取消息的服务。

broker是集群的组成部分,每个集群会由一个broker充当集群控制器的角色,由集群中的活跃broker选取出来。控制器负责分区的分配,监控broker。在集群中一个分区从属于一个broker,该broker被称为分区的首领,一个分区可以分配给多个broker,就会发生分区复制。这种复制机制为分区提供了消费冗余也就是副本的概念。

3、kafka优点

原文:https://www.cnblogs.com/lrxvx/p/13195364.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!