这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天,近期的复习紧迫感越来越大,不知道有没有和我一样面临开学期末考的同学希望我们都能正常发挥,加油。
消息队列的应用场景有哪些:
消息队列的应用场景包括:
- 分布式系统中的异步通信;
- 应用程序之间的解耦;
- 流量削峰;
- 消息可靠性传输;
- 消息缓冲;
- 消息路由;
- 消息聚合;
- 消息持久化;
- 消息定时处理;
- 消息跟踪;
- 消息审计;
- 消息排序;
- 消息分组;
Kafka 是一个高吞吐量的分布式发布/订阅消息系统,它可以支持大规模数据流的实时处理,具有以下特点:
分布式架构:Kafka 的数据存储和处理能力是通过分布式的方式实现的,它可以水平扩展以支持更多的数据存储和处理能力。
零拷贝技术:Kafka 的零拷贝技术可以减少数据在内存和磁盘之间的拷贝次数,从而提高数据处理效率。
批量发送:Kafka 具有批量发送的功能,可以将多个消息一次性发送到 Kafka 服务器,减少网络通信开销。
持久化存储:Kafka 采用持久化存储,可以将数据保存到磁盘中,即使在重启 Kafka 后,也可以保证数据不丢失。
压缩算法:Kafka 支持多种压缩算法,如 Snappy、LZ4 等,可以在数据传输过程中压缩数据,减少网络带宽的使用。
分区和副本:Kafka 中的每个主题可以分成多个分区,每个分区可以有多个副本,可以提高数据的可靠性和容错性。
消息缓存:Kafka 可以将消息缓存在内存中,以提高数据的读写速度。
这些特性使得 Kafka 可以支持高并发的写入场景,可以处理海量的数据,并且保证数据的可靠性和高可用性。
Kafka Consumer Rebalance的流程简述:
Kafka消费者重新平衡的流程包括:
- 消费者组中的消费者发出重新平衡请求;
- 组协调器收到重新平衡请求,并开始重新平衡过程;
- 组协调器将消费者组中的消费者分配到不同的分区;
- 消费者组中的消费者收到分配的分区,并开始消费;
- 组协调器完成重新平衡过程,并发出重新平衡完成的通知。