Kafka | 一 基本概念
🌒

Kafka | 一 基本概念

AI custom autofill
Kafka-核心概念-1 is a blog that introduces the fundamental concepts of Kafka.
Tags
CS
Kafka
Published
March 5, 2024
官方文档:

一 基本概念

  1. producer:生产者,发送消息
  1. consumer:消费者,接受消息
  1. broker:服务代理节点
  1. Topic:主题
  1. Partition:分区

1. 什么是 Topic 和 Partition

主题是逻辑上的概念,下面可以区分很多分区。所以Partition 也被叫做(Topic-Partition)。
同一主题下的不同分区包含的消息是不同的,主题的信息被随机分发到主题下的不同分区中,消息在被发送到分区后会分配一个特定的偏移量(offset)。offset 是分区中的唯一标识,使用其保持在分区中的顺序性。但是 offset在分区中是连续的,所以 kafka 保证的是分区有序 而不是主题有序
使用不同的分区是为了解决单服务器 io 性能瓶颈问题,有多个分区就可以分步在不同的服务器,实现水平扩容。
同一消费组中,每一个分区只能由一个消费者消费。
 
分区的好处:
  1. 便于合理的使用存储资源
  1. 提高并行度,在生产者和消费者方面都有所提升

2. 副本与同步

Partition 有多副本机制,通过增加副本来提升容灾能力,即一主多从机制。
消费者和生产者都只与 leader 交互,follower 副本只负责消息的同步。
notion image
 
ProducerRecord
 
ISR:ISR是一个集合,里面包含了一个partition同步好的所有leader和follower集合,如果一个follower消息拉下太多,就会被剔除ISR,直到同步追赶上,再加入ISR
 
 

二 消息队列

应用场景(有什么功能)
  1. 缓冲、削峰
  1. 解耦:生产者消费者之间不需要每个都链接,只需要对kafka进行通信即可。可以对生产者和消费者之间解耦。
  1. 异步通信:如将一些异步的功能请求发送到Kafka中。