JAVA面试题大全(十四)

1、Kafka 可以脱离 Zookeeper 单独使用吗?为什么?

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

2、Kafka 有几种数据保留的策略?

Kafka提供了多种数据保留策略,这些策略用于定义消息在Kafka中的保留时长和存储空间的管理。以下是Kafka中常见的数据保留策略:

  1. 时间保留策略(Time-based Retention)
    • 根据消息在主题(Topic)中的时间戳来决定消息的保留时长。
    • 通过设置主题的retention.ms参数(或log.retention.hours/log.retention.minutes等),可以指定消息在主题中的最长存储时间(单位:毫秒)。
    • 超过该时间的消息将被自动删除。
  2. 大小保留策略(Size-based Retention)
    • 根据主题中消息的总大小来决定消息的保留时长。
    • 通过设置主题的retention.bytes参数,可以指定主题中消息的最大存储大小(单位:字节)。
    • 一旦主题中消息的总大小超过了该阈值,旧的消息将被删除。
  3. 日志压缩(Log Compaction)
    • 这不是一个直接的保留策略,但它是Kafka中用于管理旧数据的一种方式。
    • 当启用日志压缩时,Kafka将只保留每个key的最新值,从而删除具有相同key的旧消息。
    • 这有助于减少存储空间的使用,并允许长时间保留key-value数据,而不仅仅是消息本身。
    • 通过设置cleanup.policy=compact来启用日志压缩。

在实际应用中,Kafka允许开发人员根据业务需求为每个Topic设置不同的数据保留策略。这意味着一个Topic可以使用时间保留策略,而另一个Topic可以使用大小保留策略或同时结合使用这些策略。此外,Kafka的默认数据保留策略通常根据具体部署和配置有所不同。

需要注意的是,Kafka的数据保留策略是通过Kafka的日志清理器(Log Cleaner)来实现的,该清理器会定期扫描日志并删除过期的消息或压缩日志以释放空间。同时,Kafka的Broker也会监控日志的大小,并在达到配置的阈值时触发清理操作。

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

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

4、什么情况会导致 kafka 运行变慢?

  • CPU性能瓶颈
  • 磁盘读写瓶颈
  • 网络瓶颈
  • Kafka内部配置或管理问题

5、使用 kafka 集群需要注意什么?

集群的数量不是越多越好,最好不要超过 7 个,因为节点越多,消息复制需要的时间就越长,整个群组的吞吐量就越低。

集群数量最好是单数,因为超过一半故障集群就不能用了,设置为单数容错率更高。

相关推荐
cynicme9 小时前
力扣3318——计算子数组的 x-sum I(偷懒版)
java·算法·leetcode
Bony-10 小时前
Go语言完全学习指南 - 从基础到精通------语言基础篇
服务器·开发语言·golang
青云交10 小时前
Java 大视界 -- Java 大数据在智能教育学习效果评估与教学质量改进实战
java·实时分析·生成式 ai·个性化教学·智能教育·学习效果评估·教学质量改进
崎岖Qiu10 小时前
【设计模式笔记17】:单例模式1-模式分析
java·笔记·单例模式·设计模式
fl17683111 小时前
基于python的天气预报系统设计和可视化数据分析源码+报告
开发语言·python·数据分析
Lei活在当下11 小时前
【现代 Android APP 架构】09. 聊一聊依赖注入在 Android 开发中的应用
java·架构·android jetpack
ACP广源盛1392462567311 小时前
(ACP广源盛)GSV6172---MIPI/LVDS 信号转换为 Type-C/DisplayPort 1.4/HDMI 2.0 并集成嵌入式 MCU
c语言·开发语言·单片机·嵌入式硬件·音视频
不穿格子的程序员12 小时前
从零开始刷算法-栈-括号匹配
java·开发语言·
雪域迷影12 小时前
C#中通过get请求获取api.open-meteo.com网站的天气数据
开发语言·http·c#·get
lkbhua莱克瓦2412 小时前
Java练习-正则表达式 1
java·笔记·正则表达式·github