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

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架构图

学习或复习kafka前很有必要了解一下kafka架构图,只有这样部分问题才能看起来清晰一点。
网上已经有很多现成的kafka架构图,这里就直接找了一个:
该图参考地址
在这里插入图片描述
核心组件说明:

  1. Topic:消息分类单元(如order-events
  2. Partition:物理存储单元(保证分区内有序)
  3. Broker:服务节点(形成分布式集群)
  4. Producer:消息生产者(支持批量发送)
  5. Consumer:消费者组(实现负载均衡)
  6. Replica:副本机制(Leader处理读写,Follower同步)
  7. Zookeeper:集群协调(元数据管理/控制器选举)

实战准备

这是国内网络环境下安装最新稳定版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

相关文章:

Kafka 面试,java实战贴

面试问题列表 Kafka的ISR机制是什么?如何保证数据一致性? 如何实现Kafka的Exactly-Once语义? Kafka的Rebalance机制可能引发什么问题?如何优化? Kafka的Topic分区数如何合理设置? 如何设计Kafka的高可用跨…...

linux多线(进)程编程——(9)信号量(一)

前言 在找到了共享内存存在的问题后,进程君父子着手开始解决这些问题。他们发明了一个新的神通——信号量。 信号量 信号量是一个计数器,用于管理对共享资源的访问权限。主要特点包括: (1)是一个非负整数 &#xff…...

PFLM: Privacy-preserving federated learning with membership proof证明阅读

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…...

关闭111端口监听

默认rpcbind服务会使用111端口,如果想禁用111端口,只需要禁用rpcbind服务即可: systemctl stop rpcbind.socket systemctl disable rpcbind.socket#检查111端口是否禁用成功 netstat -tuln |grep 111rpcbind 服务详解 rpcbind 服务&#xf…...

C++中的引用:深入理解与实用示例

文章目录 C中的引用:深入理解与实用示例一、引用的基本概念二、引用作为别名的应用三、引用作为函数参数四、指针与引用的区别五、常量引用六、引用与返回值七、总结 C中的引用:深入理解与实用示例 在C编程中,“引用”是一个强大而重要的概念…...

图片转base64 - 加菲工具 - 在线转换

图片转base64 - 加菲工具 先进入“加菲工具” 网 打开 https://www.orcc.top, 选择 “图片转base64”功能 选择需要转换的图片 复制 点击“复制”按钮,即可复制转换好的base64编码数据,可以直接用于img标签。...

opencv 对图片的操作

对图片的操作 1.图片镜像旋转(cv2.flip())2 图像的矫正 1.图片镜像旋转(cv2.flip()) 图像的旋转是围绕一个特定点进行的,而图像的镜像旋转则是围绕坐标轴进行的。图像的镜像旋转分为水平翻转、垂直翻转、水平垂直翻转…...

LabVIEW数据采集与传感系统

开发了一个基于LabVIEW的智能数据采集系统,该系统主要通过单片机与LabVIEW软件协同工作,实现对多通道低频传感器信号的有效采集、处理与显示。系统的设计旨在提高数据采集的准确性和效率,适用于各种需要高精度和低成本解决方案的工业场合。 项…...

【Easylive】​​Gateway模块 bootstrap.yml 解析

【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版 Gateway模块 bootstrap.yml 常规解析 该配置文件定义了 Spring Cloud Gateway 的核心配置,包括 环境配置、服务注册、动态路由规则 等。以下是逐项解析: 1. 基础配…...

matlab 环形单层柱状图

matlab 环形单层柱状图 matlab 环形单层柱状图 matlab 环形单层柱状图 图片 图片 【图片来源粉丝】 我给他的思路是:直接使用风玫瑰图可以画出。 rose_bar 本次我的更新和这个有些不同!是环形柱状图,可调节细节多; 只需要函数…...

文献×汽车 | 基于 ANSYS 的多级抛物线板簧系统分析

板簧系统是用于减弱或吸收动态系统中发生的应力、应变、偏转和变形等破坏性因素的机械结构。板簧系统可能对外力产生不同的响应,具体取决于其几何结构和材料特性。板簧系统的计算机辅助分析对于高精度确定系统的变形特性和结构特性至关重要。 在这项工作中&#xff…...

MySQL:如何用关系型数据库征服NoSQL核心战场?

写在前面:当SQL遇见NoSQL的十年之变 2012年MongoDB掀起文档数据库革命时,开发者们不得不在灵活性与事务一致性之间做痛苦抉择。十年后的今天,MySQL 8.0的JSON功能已实现: ✅ 二进制存储效率超越传统BLOB 40% ✅ 多值索引使JSON查…...

分布式之CAP原则:理解分布式系统的核心设计哲学

声明:CAP中的P原则都是需要带着的 在分布式系统的设计与实践中,CAP原则(又称CAP定理)是开发者必须掌握的核心理论之一。它揭示了分布式系统在一致性(Consistency)、可用性(Availability&#x…...

RHCE 练习二:通过 ssh 实现两台主机免密登录以及 nginx 服务通过多 IP 区分多网站

一、题目要求 1.配置ssh实现A,B主机互相免密登录 2.配置nginx服务,通过多ip区分多网站 二、实验 实验开始前需准备两台 linux 主机便于充当服务端以及客户端,两台主机 IP 如下图: 实验1:配置 ssh 实现 A&#xff0…...

瑞吉外卖-分页功能开发中的两个问题

1.分页功能-前端页面展示显示500 原因:项目启动失败 解决:发现是Category实体类中,多定义了一个删除字段,但是我数据库里面没有is_deleted字段,导致查询数据库失败,所以会导致500错误。因为类是从网上其他帖…...

工业物联网安全网关 —— 安全OTA升级签名验证

这里写目录标题 工业物联网安全网关 —— 安全OTA升级签名验证一、项目背景与简介1.1 背景介绍1.2 OTA升级的安全挑战1.3 项目目标二、理论基础与关键技术2.1 数字签名基础2.2 OTA升级签名验证原理2.3 关键技术与安全算法三、系统架构设计3.1 系统模块划分3.2 系统架构图(Merm…...

生信分析平台Galaxy是使用什么语言编程?是R语言吗?

Galaxy平台是一个基于**Python**开发的开放源代码生物信息学分析平台,而非主要依赖R语言。以下是关键细节: 1. **核心语言** - **后端**:主要用**Python**(Django/Flask框架)实现服务器逻辑、工具集成和API。 …...

【Rust 精进之路之第10篇-借用·规则】引用 (``, `mut`):安全、高效地访问数据

系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 作者: 码觉客 发布日期: 2025年4月20日 引言:所有权的“限制”与“变通”之道 在上一篇【所有权核心】中,我们揭示了 Rust 如何通过所有权规则和移动 (Move) 语义来保证内存安全,避免了垃圾回收器的同时,也防止了诸…...

基于瑞芯微RK3576国产ARM八核2.2GHz A72 工业评估板——Docker容器部署方法说明

前 言 本文适用开发环境: Windows开发环境:Windows 7 64bit、Windows 10 64bit Linux开发环境:VMware16.2.5、Ubuntu22.04.5 64bit U-Boot:U-Boot-2017.09 Kernel:Linux-6.1.115 LinuxSDK:LinuxSDK-[版本号](基于rk3576_linux6.1_release_v1.1.0) Docker是一个开…...

Kafka安全认证技术:SASL/SCRAM-ACL方案详解

#作者 :张桐瑞 文章目录 1Kafka安全认证技术介绍2基础设置3 配置SASL/SCRAM认证3.1编写server.properties配置3.2编写kafka.conf密码文件3.3编写user.properties配置文件3.4编写kafka-run-class.sh脚本文件3.5Zk中增加kafka用户3.6启动kafka进程 1Kafka安全认证技术…...

MySQL VS SQL Server:优缺点全解析

数据库选型、企业协作、技术生态、云数据库 1.1 MySQL优缺点分析 优点 开源免费 社区版完全免费,适合预算有限的企业 允许修改源码定制功能(需遵守GPL协议) 跨平台兼容性 支持Windows/Linux/macOS,适配混合环境部署 云服务商…...

探索 Flowable 后端表达式:简化流程自动化

什么是后端表达式? 在 Flowable 中,后端表达式是一种强大的工具,用于在流程、案例或决策表执行期间动态获取或设置变量。它还能实现自定义逻辑,或将复杂逻辑委托…… 后端表达式在 Flowable 的后端运行,无法访问前端…...

Mysql的redolog

保证事务持久性,用于崩溃恢复,崩溃恢复时,把redo上记载的页读到内存,对其修改,变为脏页,刷盘运用于WAL技术,将随机写改为顺序写 redo log有三种状态: 存在 redo log buffer 中&…...

HDFS入门】HDFS安全与权限管理解析:从认证到加密的完整指南

目录 引言 1 认证与授权机制 1.1 Kerberos认证集成 1.2 HDFS ACL细粒度控制 2 数据加密保护 2.1 传输层加密(SSL/TLS) 2.2 静态数据加密 3 审计与监控体系 3.1 操作审计流程 3.2 安全监控指标 4 权限模型详解 4.1 用户/组权限模型 4.2 umask配置原理 5 安全最佳实…...

React-useImperativeHandle (forwardRef)

我们会遇到这样的场景:某个组件想要暴露一些方法,来供外部组件来调用。例如我们在开发form表单的时候,就需要把设置表单值、重置值、提交等方法暴露给外部使用。会有如下代码: import { forwardRef } from react;const Form for…...

Mediatek Android13 设置Launcher

概述: 本章将围绕Launcher讲述两种修改默认Launcher的情况。 一:完全覆盖 第一种方法和预置apk类似,区别在于增加LOCAL_OVERRIDES_PACKAGES说明,该方法会完全覆盖系统默认的Launcher。 关于如何预置apk,可见另一篇文章: Mediatek Android13 预置APP-CSDN博客 修改A…...

性能比拼: Go vs Java

本内容是对知名性能评测博主 Anton Putra Go (Golang) vs Java: Performance Benchmark 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 在本视频中,我们将比较 Go 和 Java。 我们将基于 Golang 的 Fiber 框架和 Java 的 Spring Boot 创建几个简单的应用…...

ElMessageBox消息弹框(vue3总结)

一 展示各种内容 const checkCheckbox (check: any, formEl: any) > {ElMessageBox({title: "服务协议及隐私权政策",message: h("p", null, [h("span", null, "我已阅读并同意 "),h("span",{style: "color: #477F…...

Jupyter Notebook 中切换/使用 conda 虚拟环境的方式(解决jupyter notebook 环境默认在base下面的问题)

使用 nb_conda_kernels 添加所有环境 一键添加所有 conda 环境 conda activate my-conda-env # this is the environment for your project and code conda install ipykernel conda deactivateconda activate base # could be also some other environment conda in…...

CLIP | 训练过程中图像特征和文本特征的在嵌入空间中的对齐(两个投影矩阵的学习)

在多模态学习(Multimodal Learning)中,投影矩阵 W i W_i Wi​ 和 W t W_t Wt​ 是通过训练过程学习得到的。它们的作用是将图像特征 I f I_f If​ 和文本特征 T f T_f Tf​ 映射到一个共享的嵌入空间(embedding space&#xf…...