Kafka架构详解及17个面试必问问题与答案
需积分: 0 148 浏览量
更新于2024-08-03
收藏 15KB DOCX 举报
Kafka 是一个分布式流处理平台,它专为高吞吐量、低延迟的数据流处理设计。Kafka 的设计特性主要包括以下几个方面:
1. **主题与生产者和消费者**:
Kafka 将消息组织成主题(Topic),这是一种分类方式,生产者(Producer)负责向指定主题发布消息,而消费者(Consumer)则订阅这些主题来接收消息。每个主题在集群中由多个节点(Broker)存储和复制,提高了系统的可扩展性和容错性。
2. **数据传输事务性**:
Kafka 支持三种数据传输事务定义:
- 最多一次 (At Most Once):消息可能只传输一次,但不保证不丢失。
- 最少一次 (At Least Once):确保消息至少被传输一次,可能会出现重复。
- 精确一次 (Exactly Once):理想的模式,每个消息仅被传输一次且不会重复,但实现起来较为复杂,依赖于生产者和消费者的协调以及确认机制。
3. **节点健康检查**:
Kafka 使用 ZooKeeper 作为元数据管理服务,节点之间的健康状态通过心跳机制进行监控。节点必须能与 ZooKeeper 保持连接,并且 follower 节点需要及时同步 leader 节点的写入操作,以确保数据一致性。
4. **消息路由与生产者策略**:
Producer 不直接将数据发送到 Broker 的 leader,而是发送到整个集群,然后由集群内的节点告知 producer 目标分区及其 leader 的位置。这种设计减少了网络延迟,提高了效率。
5. **消费者控制**:
Consumer 可以主动从 Broker 拉取消息(Pull模式),通过发送“fetch”请求来消费特定分区的消息。Consumer 有对消息偏移量(offset)的控制权,能够回滚以重新消费历史消息,提供了灵活性。
6. **消息传递模式**:
Kafka 采用了一种折中的策略,生产者将消息推送给 Broker,但消费者主动请求获取消息,这称为所谓的“pull”模式,允许消费者根据需要控制消息的消费速率。
Kafka 以其高效的消息生产和消费机制、支持精确一次交付的特点,以及灵活的消费者控制,成为了大数据实时处理领域的关键组件。其设计巧妙地平衡了性能、可靠性和易用性,是现代分布式系统架构中的重要一环。
2023-07-29 上传
2023-08-10 上传
2023-05-10 上传
2023-06-10 上传
2023-08-25 上传
2023-06-07 上传
2023-06-09 上传
2023-06-10 上传
2023-11-25 上传
![](https://profile-avatar.csdnimg.cn/e8558fa8bb95418c99ef6cda2441b583_2301_77783312.jpg!1)
老歪不歪
- 粉丝: 33
- 资源: 4039
最新资源
- 解决Eclipse配置与导入Java工程常见问题
- 真空发生器:工作原理与抽吸性能分析
- 爱立信RBS6201开站流程详解
- 电脑开机声音解析:故障诊断指南
- JAVA实现贪吃蛇游戏
- 模糊神经网络实现与自学习能力探索
- PID型模糊神经网络控制器设计与学习算法
- 模糊神经网络在自适应PID控制器中的应用
- C++实现的学生成绩管理系统设计
- 802.1D STP 实现与优化:二层交换机中的生成树协议
- 解决Windows无法完成SD卡格式化的九种方法
- 软件测试方法:Beta与Alpha测试详解
- 软件测试周期详解:从需求分析到维护测试
- CMMI模型详解:软件企业能力提升的关键
- 移动Web开发框架选择:jQueryMobile、jQTouch、SenchaTouch对比
- Java程序设计试题与复习指南