学习笔记:消息队列(三)Kafka(上)|青训营;

52 阅读1分钟

在上次的笔记中我们接触到了消息队列的历史和不同的对比。我们知道了每个不同消息队列的比较,那么我们就该来聊聊他们各自的特点了,这次是Kafka。

使用场景

  1. 搜索服务
  2. 订单服务
  3. 直播服务
  4. 支付服务

如何使用

graph TD
创建集群 --> 新增topic --> 编写生产者逻辑 --> 编写消费者逻辑

注意事项:

  1. 在创建topic的时候需要注意切片数量
  2. 第三步时引入对应语言的SDK,配置好集群和Topic等参数,初始化一个生产者,调用Send方法,将消息发送出去
  3. 第四步要poll方法

术语

从课件中截取下图:

1692588716689.png

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

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

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

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

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

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

Replica:每个分片有多个 Replica,Leader Replica 将会从 ISR 中选出。

我们还需要数据复制,不能让不同的客户查询相同的内容结果不一样。

kafka架构

截图来自课件:

1692590065518.png