Kafka学习 | 青训营笔记

84 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天

如何使用Kafka

创建集群 ——> 新增Topic ——> 编写生产者逻辑 ——> 编写消费者逻辑

第一步:首先需要创建一个Kafka集群

第二步:需要在这个集群中创建一个Topic,并且设置好分片数量

第三步: 引入对应语言的SDK,配置好集群和Topic等参数,初始化一个生产者,调用Send方法,将Hello World发送出去

第四步: 引入对应语言的SDK,配置好集群和Topic等参数,初始化一个消费者,调用Pol方法,将收到刚刚发送的Hello World

Kafka基本概念

Topic: Kakfa中的逻辑队列,可以理解成每一个不同的业务场景就是一个不同的topic,对于这个业务来说,所有的数据都存储在这个topic中

Cluster: Kafka的物理集群,每个集群中可以新建多个不同的topic

Producer: 顾名思义,也就是消息的生产端,负责将业务消息发送到Topic当中

Consumer: 消息的消费端,负责消费已经发送到topic中的消息

Partition: 通常topic会有多个分片,不同分片之间消息是可以并发来处理的,这样提高单个Topic的吞吐

Offset: 消息在 partition 内的相对位置信息,可以理解为唯一ID,在 partition 内部严格递增

image.png

Replica: 分片的副本,分布在不同的机器上,可用来容灾,leader对外服务,Follower异步去拉去leader的数进行同步,如果leader挂掉了,可以将Follower提升为leader再对外进行服务

ISR:意思是同步中的副本,对于folower来说,始终和leader是有一定差距的,但当这差距比较小的时候,我们就可以将这个follower副本加入到ISR中,不在ISR中的副本是不允许提升成Leader的

image.png

数据复制

image.png

Broker代表每一个Kafka的节点,所有的Broker节点最终组成了一个集群。图中集群有2个Topic,分别是Topic1和Topic2,Topic1有两个分片,Topic2有1个分片,每个分片都是三副本的状态。

这里第二个Broker同时还扮演了Controller的角色,Controller是整个集群的大脑,负责对副本和Broker进行分配。