在上次的笔记中我们接触到了消息队列的历史和不同的对比。我们知道了每个不同消息队列的比较,那么我们就该来聊聊他们各自的特点了,这次是Kafka。
使用场景
- 搜索服务
- 订单服务
- 直播服务
- 支付服务
如何使用
graph TD
创建集群 --> 新增topic --> 编写生产者逻辑 --> 编写消费者逻辑
注意事项:
- 在创建topic的时候需要注意切片数量
- 第三步时引入对应语言的SDK,配置好集群和Topic等参数,初始化一个生产者,调用Send方法,将消息发送出去
- 第四步要poll方法
术语
从课件中截取下图:
Topic:Kakfa中的逻辑队列,可以理解成每一个不同的业务场景就是一个不同的topic,对于这个业务来说,所有的数据都存储在这个topic中
cluster: Kafka的物理集群,每个集群中可以新建多个不同的topic
Producer: 顾名思义,也就是消息的生产端,负责将业务消息发送到Topic当中
Consumer: 消息的消费端,负责消费已经发送到topic中的消息
Partition: 通常topic会有多个分片,不同分片之间的消息是可以并发来处理的,这样提高单个Topic的吞吐
Offset:消息在 partition 内的相对位置信息,可以理解为唯一ID,在 partition 内部严格递增。可以理解为数组的偏移量。
Replica:每个分片有多个 Replica,Leader Replica 将会从 ISR 中选出。
我们还需要数据复制,不能让不同的客户查询相同的内容结果不一样。
kafka架构
截图来自课件: