Kafka模块(十五)

Java八股文综合常见面试题及答案Java八股文综合常见面试题及答案_java面试题-优快云博客

Kafka

152.kafka 可以脱离 zookeeper 单独使用吗?为什么?

kafka 不能脱离 zookeeper 单独使用,因为 kafka 使用 zookeeper 管理和协调 kafka 的节点服务器。


153. kafka 有几种数据保留的策略?

kafka 有两种数据保存策略:按照过期时间保留和按照存储的消息大小保留。


154. kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理?

这个时候 kafka 会执行数据清除工作,时间和大小不论那个满足条件,都会清空数据。


155. 什么情况会导致 kafka 运行变慢?

 1. 磁盘 I/O 瓶颈

  • 原因:Kafka 依赖磁盘进行消息存储,磁盘性能不足会导致读写变慢。

  • 解决方法

    • 使用高性能 SSD。

    • 将日志目录(log.dirs)分布在多个磁盘上,提升并发 I/O。

 2. 网络瓶颈

  • 原因:Broker 之间或 Broker 与客户端之间的网络带宽不足或延迟过高。

  • 解决方法

    • 确保网络带宽充足。

    • 优化网络配置,减少延迟。

 3. Partition 分布不均

  • 原因:某些 Broker 上的 Partition 过多,导致负载不均。

  • 解决方法

    • 重新分配 Partition,确保负载均衡。

    • 使用 kafka-reassign-partitions.sh 工具手动调整。

 4. Producer 配置不当

  • 原因:生产者未启用批量发送或批量大小设置不合理。

  • 解决方法

    • 启用批量发送并调整 batch.size 和 linger.ms 参数。

    • 使用异步发送减少延迟。

 5. Consumer 配置不当

  • 原因:消费者处理速度慢或并行度不足。

  • 解决方法

    • 增加消费者数量或 Partition 数量。

    • 优化消费者代码,提升处理效率。

 6. GC 问题

  • 原因:频繁的垃圾回收(GC)导致 Broker 或客户端暂停。

  • 解决方法

    • 调整 JVM 参数,优化 GC 策略。

    • 使用 G1 垃圾回收器。

 7. Zookeeper 性能问题

  • 原因:Zookeeper 集群性能不足,影响 Kafka 元数据操作。

  • 解决方法

    • 确保 Zookeeper 集群的高可用性。

    • 监控 Zookeeper 性能,必要时扩容。

 8. Topic 配置不当

  • 原因:Partition 数量过多或过少,Replication Factor 过高。

  • 解决方法

    • 根据负载调整 Partition 数量。

    • 合理设置 Replication Factor,通常为 3。

 9. 数据保留策略不当

  • 原因:日志保留时间过长或未启用压缩,导致磁盘空间不足。

  • 解决方法

    • 设置合理的日志保留时间。

    • 启用日志压缩(Log Compaction)。

 10. 硬件资源不足

  • 原因:CPU、内存或磁盘资源不足。

  • 解决方法

    • 增加硬件资源。

    • 监控资源使用情况,及时扩容。

 11. Broker 配置不当

  • 原因:Broker 配置参数不合理,如 num.network.threads 或 num.io.threads 过小。

  • 解决方法

    • 根据负载调整 Broker 配置参数。

12. 消息大小过大

  • 原因:消息大小超过 Broker 或客户端的处理能力。

  • 解决方法

    • 控制消息大小,避免过大。

    • 调整 message.max.bytes 和 replica.fetch.max.bytes 参数。

 13. 集群负载过高

  • 原因:集群负载接近或超过其处理能力。

  • 解决方法

    • 扩容集群,增加 Broker。

    • 优化生产者和消费者配置,减少负载。

 14. 日志文件过多

  • 原因:日志文件过多导致文件系统性能下降。

  • 解决方法

    • 定期清理旧日志文件。

    • 调整日志段大小(log.segment.bytes)和滚动时间(log.roll.hours)。


156. 使用 kafka 集群需要注意什么?

  1. 集群规划

  • 节点数量:至少部署 3 个 Broker 以确保高可用性,避免单点故障。

  • 硬件配置:Broker 需要足够的 CPU、内存和磁盘 I/O,磁盘应选择高性能 SSD。

  • 网络配置:确保 Broker 之间的低延迟和高带宽网络连接。

  2. Topic 和 Partition 设计

  • Partition 数量:根据吞吐量和并行度需求设置 Partition 数量,过多会增加开销,过少会影响并发性能。

  • Replication Factor:建议设置为 3,确保数据冗余和高可用性。

  • Partition 分布:均匀分布 Partition 到不同 Broker,避免负载不均。

  3. 数据保留策略

  • 保留时间:根据业务需求设置合理的日志保留时间,避免磁盘空间耗尽。

  • 压缩策略:启用日志压缩(Log Compaction)以节省存储空间。

 4. 性能优化

  • 批量发送:生产者启用批量发送(Batch Size)以提高吞吐量。

  • 异步发送:生产者使用异步发送以减少延迟。

  • 消费者并行度:增加消费者数量或 Partition 数量以提高消费速度。

 5. 监控与维护

  • 监控指标:监控 Broker、Topic、Partition 的状态,关注延迟、吞吐量、磁盘使用率等。

  • 日志管理:定期清理日志文件,避免磁盘空间不足。

  • 版本升级:定期升级 Kafka 和依赖组件,确保安全性和性能。

 6. 安全性

  • 认证与授权:启用 SSL/TLS 加密和 SASL 认证,配置 ACL 控制访问权限。

  • 防火墙配置:限制 Kafka 集群的访问,仅允许可信 IP 访问。

 7. 容灾与备份

  • 跨机房部署:在多个机房部署 Broker 以提高容灾能力。

  • 数据备份:定期备份重要数据,防止数据丢失。

 8. 客户端配置

  • 生产者重试:配置生产者的重试机制,避免消息丢失。

  • 消费者偏移量管理:合理管理消费者偏移量,避免重复消费或消息丢失。

 9. Zookeeper 管理

  • Zookeeper 集群:确保 Zookeeper 集群的高可用性,避免 Kafka 集群不可用。

  • Zookeeper 监控:监控 Zookeeper 的状态,确保其稳定运行。

 10. 测试与验证

  • 压力测试:在生产环境前进行压力测试,确保集群能承受预期负载。

  • 故障模拟:模拟 Broker 或网络故障,验证集群的容错能力。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值