E9987d737689efc80444d9606687468f
Apache kafka实战笔记 —— 盘点kafka的基础术语

[TOC]

概述:

本文大多是《Apache kafka实战》这本书的总结和感悟,不会完全照搬书中内容,目的在于通过问答的形式,总结kafka知识,只适用于初学者以及想购买《Apache kafka实战》的同学,该书是一本非常适合初学者的入门书籍,推荐购买。

消息(Redcord)

kafka处理的对象。

主题(Topic)

主题是一个承载消息的容器,在实际的开发中,用来区分具体的业务,它是一个逻辑容器。

生产者(Producer)

向主题发布消息的客户端应用程序,生产者可以向一个或多个topic发送消息。

消费者(Consumer)

订阅主题的客户端应用程序,和生产者一样,消费者也可以订阅一个或多个topic。
生产者(Producer)和消费者(Consumer)统称为客户端。

Broker

kafka的服务器端由被称为Broker的服务进程构成,也就是说一个kafka集群由一个或者多个Broker组成。它主要负责接收和处理客户端发送的数据,以及对数据进行持久化。(kafka的持久化采用的是顺序写磁盘的方式,大大减少了随机写入的寻址时间,尤其是对机械硬盘有巨大的提升)

分区(Partition)

分区是一个有序不变的序列,每个主题下可以有多个分区(可以类比其他分布式框架中的分片),每个分区都有固定的编号,一条数据只会被发送到一个分区中,比如一个topic下有2个partition,序号为0,1,我们向这个topic发送一条数据,该数据要么被发送到partition0上,要么被发送到partition1上。

消息位移(Offset)

表示分区中每条消息的位置信息,单调递增,消息只要发送到分区上,它的消息位移就被确定下来,比如有一个topic有10个partition,我们向该topic发送数据,那么这10条消息的Offset分别为0,1,2,3 … 9。

副本(Replica)

kafka通过数据冗余来实现高可用,一条数据会被拷贝到多个partition上,这些partition就是副本(副本是分区层面上的)。副本分为领导者副本和追随者副本,领导者副本用于提供数据的读写服务,而追随者副本只会请求领导者副本,同步数据。不对外提供服务(和Mysql中的从库可以提供读服务不同)。

消费者位移(Consumer Offset)

用来表征消费者的消费进度,每一个消费者都有自己的消费位移,消费位移区别于消息位移,是可以改变的。(这两个概念一定要区分好,博主就是因为当时没有分清这两个概念,导致后期学习kafka的时候,踩了很多坑)

消费者组(Consumer Group)

消费者组是kafka最经典的设计之一,多个消费者共同组成一个组,同时消费多个分区以实现高吞吐。(传统的点对点模型,是一个消费者去消费生产者生产的消息,而使用消费者组,就可以实现多个消费者都去消费生产者生产的消息)

重平衡(Rebalance)

消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。Rebalance 是 Kafka 消费者端实现高可用的重要手段。

最后,期待您的订阅和点赞,专栏每周都会更新,希望可以和您一起进步,同时也期待您的批评与指正!

© 著作权归作者所有
这个作品真棒,我要支持一下!
一个坚持原创的小专栏。分享编程知识,提升工作效率,致力于通过简单的语言,把编程这点事讲清楚。涵盖内容:java、设...
0条评论
top Created with Sketch.