[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 消费者端实现高可用的重要手段。
最后,期待您的订阅和点赞,专栏每周都会更新,希望可以和您一起进步,同时也期待您的批评与指正!
[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 消费者端实现高可用的重要手段。
最后,期待您的订阅和点赞,专栏每周都会更新,希望可以和您一起进步,同时也期待您的批评与指正!
[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 消费者端实现高可用的重要手段。
最后,期待您的订阅和点赞,专栏每周都会更新,希望可以和您一起进步,同时也期待您的批评与指正!