当前位置: 首页 > news >正文

Kafka 面试,java实战贴

面试问题列表

Kafka的ISR机制是什么?如何保证数据一致性?
如何实现Kafka的Exactly-Once语义?
Kafka的Rebalance机制可能引发什么问题?如何优化?
Kafka的Topic分区数如何合理设置?
如何设计Kafka的高可用跨机房容灾方案?
Kafka Producer的acks参数对消息可靠性有何影响?
Kafka Consumer的auto.offset.reset参数有哪些配置?适用场景?
如何监控Kafka的Lag(消费延迟)?
Kafka的Log Compaction原理是什么?
如何解决Kafka集群中Broker磁盘IO瓶颈?
Kafka与RocketMQ在事务消息实现上的区别是什么?

实战准备

这是国内网络环境下安装最新稳定版Kafka和Zookeeper的完整指南(基于Kafka 3.7.0):

  1. 使用国内镜像源下载Kafka:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/3.7.0/kafka_2.13-3.7.0.tgz
  1. 安装Java环境:
sudo apt update
sudo apt install openjdk-17-jdk -y
  1. 解压安装(使用/opt目录):
tar -xzf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 /opt/kafka
  1. 配置Zookeeper(编辑配置文件):
sudo nano /opt/kafka/config/zookeeper.properties

修改以下配置:

dataDir=/var/lib/zookeeper
clientPort=2181
maxClientCnxns=60
  1. 配置Kafka(编辑配置文件):
sudo nano /opt/kafka/config/server.properties

修改以下关键配置:

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://your_server_ip:9092
log.dirs=/var/lib/kafka
zookeeper.connect=localhost:2181
  1. 创建服务管理脚本(替代systemd方案):
    创建启动脚本:
sudo nano /opt/kafka/start_services.sh

内容:

#!/bin/bash
/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties > /var/log/zookeeper.log 2>&1 &
sleep 5
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties > /var/log/kafka.log 2>&1 &
  1. 设置文件权限:
sudo chmod +x /opt/kafka/start_services.sh
sudo mkdir -p /var/lib/{zookeeper,kafka}
sudo chown -R $USER:$USER /var/lib/{zookeeper,kafka}
  1. 启动服务:
cd /opt/kafka && ./start_services.sh
  1. 验证安装:
# 查看Zookeeper日志
tail -f /var/log/zookeeper.log# 创建测试主题
/opt/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1# 列出主题
/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092

相关文章:

  • ARM Cortex-M (STM32)如何调试HardFault
  • 【美化vim】
  • kafka auto.offset.reset详解
  • QML ColorDialog:组件应用详解
  • 3.1 WPF使用MaterialDesign的介绍1
  • YOLO算法的革命性升级:深度解析Repulsion损失函数在目标检测中的创新应用
  • 三餐四季、灯火阑珊
  • Sentinel源码—8.限流算法和设计模式总结二
  • nodejs模块暴露数据的方式,和引入(导入方式)方式
  • 使用Python+OpenCV将多级嵌套文件夹下的视频文件抽帧
  • mybatis-plus开发orm
  • [Git] Git Stash 命令详解
  • Linux-skywalking部署步骤并且添加探针
  • 【设计模式】深入解析代理模式(委托模式):代理模式思想、静态模式和动态模式定义与区别、静态代理模式代码实现
  • 云原生 - Service Mesh
  • 基于SpringBoot的高校学习讲座预约系统-项目分享
  • 滑动窗口学习
  • 【Linux网络】各版本TCP服务器构建 - 从理解到实现
  • 基于Python+Pytest实现自动化测试(全栈实战指南)
  • 从单点突破到链式攻击:XSS 的渗透全路径解析
  • 神舟十九号航天员乘组计划于4月29日返回东风着陆场
  • 美学术界发起集体抗议,百余高校联署声明抵制政府干预
  • 针对“二选一”,美团再次辟谣
  • 十大券商看后市|A股下行波动风险有限,震荡中有望逐步抬升
  • 菲律宾群岛地区发生5.6级地震,震源深度20千米
  • 人民网评:官方轻踩刹车,智能驾驶不能“蒙眼狂奔”