一些Kafka面试题

news2024/11/26 4:30:14

Kafka是如何保证消息不丢失?

1.生产者发送消息到Broker丢失:

设置异步发送:发送失败则使用回调进行记录或者重发

消息重试:参数配置,可以设置重试次数

2.消息在broker中存储丢失

发送确认机制acks

acks=0,生产者在成功写入消息之前不会等待任何来自服务器的响应,消息有丢失的风险,但速度最快

acks=1,只要集群首领节点收到消息,生产者就会收到一个来自服务器的成功响应

acks=all,只有当所有参与赋值的节点全部收到消息时,生产者才会收到一个来自服务器的成功响应

3.消息从Broker接受消息丢失

消费者默认自动按期提交已经消费的偏移量,默认5s提交一次

如果出现重平衡的情况,可能会重复消费或者丢失数据

 关闭自动提交偏移量,开启手动提交偏移量,提交方式最好是同步+异步提交

Kafka如何保证消费的顺序性?

默认情况下,一个topic的数据可能存储在不同的分区中,每个分区都有一个按照顺序的存储的偏移量,如果消费者关联了多个分区不能保证顺序性

解决方案:1.发送消息时指定分区号

2.发送消息时按照相同的业务设置相同的key,最终计算的时候也能找到同样的分区进行存储

Kafka的高可用机制

集群模式

一个kafka集群由多个broker实例组成,即使一个broker宕机,也不耽误其他broker继续对外提供服务

分区备份机制

一个topic有多个分区,每个分区有多个副本,有一个leader,其余的是follower,副本存储在不同的broker中;所有的分区副本的内容都是相同的,如果leader发生故障时,会自动将其中一个follower提升为leader,保证高可用性

Kafka集群的工作原理

  1. 消息生产

    • 生产者将消息发送到Broker,Broker将消息存储到主题的分区。
    • 生产者可以选择将消息发送到特定的分区,或者让Kafka根据键值自动分配分区。
  2. 消息存储

    • Broker将消息存储在磁盘上,并维护消息的索引和偏移量。
    • Kafka保证消息的持久化,直到消费者已经确认消费。
  3. 消息消费

    • 消费者从Broker读取消息,并根据偏移量跟踪他们已经读取的消息。
    • 消费者组内的消费者协调处理分区中的消息,确保每个消息只被处理一次。
  4. 消息复制

    • 为了提高可靠性,Kafka支持消息的复制。每个分区可以有多个副本,副本之间通过ZooKeeper协调。
    • 主副本负责处理生产者和消费者的消息请求,其他副本用于故障转移。

Kafka的数据清理机制

Kafka的文件存储机制:

1.Kafka中topic的数据存储在分区上,分区如果文件过大就会分段存储segment

2.每个分段在磁盘上以索引和日志文件的形式存储

3.分段的好处是,第一能够减少单个文件内容的大小,查找数据方便,第二方便kafka进行日志清理

数据清理机制:

1.根据消息的保留时间,当消息在Kafka中保存的时间超过了指定的时间,就会触发清理过程

2.根据topic存储的数据大小,当topic所占的日志文件大小大于一定的阈值,则开始删除最久的消息

 

Kafka中高性能的设计

四次拷贝:

零拷贝(两次):

消息分区:不受单台服务器的限制,可以不受限的处理更多的数据

顺序读写:磁盘顺序读写,提升读写效率

页缓存:把磁盘中的数据缓存到内存中,把对磁盘的访问变成对内存的访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1962442.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

创新突破 | OpenCSG发布StarShip CodeReview v1.0.0 Beta版

1. 代码审查很关键但耗时耗力 在软件开发过程中,代码审查是确保代码质量的关键环节。代码审查有助于维护代码标准和发现潜在错误,但也常常耗费大量时间和精力。审查者不仅需要深入理解代码逻辑,还要在繁复的逻辑中识别Bug,这个过…

如何使用 Odoo 16 主生产调度程序规划生产

为了优化运营并提高生产力,企业需要生产管理软件。在当今竞争激烈的经济环境中,有效的资源管理对企业至关重要。为制造业务设计的软件经常用于控制收入增长和盈利能力。ERP(企业资源规划)系统是专门为制造业创建的,可以…

Java刷题: 丑数判断

题目 丑数 就是只包含质因数 2、3 和 5 的正整数。 给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。 解题思路 我觉得刷题是为了扩宽思考的广度。看到这题的时候,我的大脑是发懵的…

技术成神之路:设计模式(十)备忘录模式

介绍 备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的前提下捕获和恢复对象的内部状态。通过备忘录模式,可以在程序运行过程中保存和恢复对象的某个状态,从而实现“撤销”等功能。 1.定义 备忘…

11 优化器

目录 1. 随机梯度下降系优化器:SGD 1.1 算法种类 1.2 优缺点 2 SGDM 即为SGD with momentum 动量 2.1 公式 2.2 动量的优缺点 优点 缺点 2.3 使用场景 3 AdaGrad 3.1 公式 3.2 AdaGrad的优缺点 优点 缺点 3.3 使用场景 3.4 Adam 3.4.1 Adam优化器的…

倒计时:60秒后再输入验证码

思路1:每隔 1 秒种减 1 ,直到减到 0 为止。可以写成公用方法。亲测有效。 countDown(){ const TIME_COUNT 60; if (!this.timer) { this.count TIME_COUNT; this.codeShow false; this.timer setInterval(() > { if (this.count > 0 &&…

苹果密码解锁工具已注册专业版_不限制电脑

Aiseesoft iPhone Unlocker:轻松解锁iPhone。功能强大:一键移除4位、6位密码、Touch ID和Face ID。隐私保护:创建密码,安全无忧。数据提醒:解锁时,注意数据和设置将被清除。Apple ID 解锁:快速删…

【Spring Boot教程:从入门到精通】掌握Spring Boot开发技巧与窍门(三)-配置git环境和项目创建

主要介绍了如何创建一个Springboot项目以及运行Springboot项目访问内部的html页面!!! 文章目录 前言 配置git环境 创建项目 ​编辑 在SpringBoot中解决跨域问题 配置Vue 安装Nodejs 安装vue/cli 启动vue自带的图形化项目管理界面 总结 前言 …

Qt基础 | TCP通信 | TCP服务端与客户端程序设计 | QTcpServer | QTcpSocket

文章目录 一、TCP 通信1.TCP 通信概述2.TCP 服务器端程序设计2.1 主窗口定义与构造函数2.2 网络监听与 socket 连接的建立2.3 与 TCP 客户端进行数据通信 3.TCP 客户端程序设计3.1 主窗口定义与构造函数3.2 与服务器端建立 socket 连接3.3 与 TCPServer 的数据收发 4.小结 Qt 网…

[Docker][Docker Image]详细讲解

目录 1.Docker镜像是什么?2.Docker镜像加载原理1.bootfs2.rootfs3.为什么CentOS镜像几个G,而Docker CentOS镜像才几百M?1.CentOS2.Docker CentOS 3.镜像分层1.Union FS2.分层理解3.容器层 vs 镜像层 4.镜像命令1.docker images2.docker image…

大数据信用报告查询会不会留下查询记录?怎么选择查询平台?

最近有不少网友都在咨询一个问题,那就是大数据信用报告查询会不会留下查询记录,会不会对自己的征信产生影响,下面本文就详细为大家介绍一下,希望对你了解大数据信用有帮助。 首先、大数据信用与人行征信是独立的 很多人只知道人行…

innovus:如何only select highlighted

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 来自星球提问; 1)ICC2 2)innovus View->Set Preference,勾选Only Select Highlighted

新装centos7虚拟机如何配置网络,NAT配置固定IP

首先声明,我想使用的是NAT连接模式,并且设置完IP之后,使得这个IP固定住,以后不会再变了。 文章目录 1,打开Vmware软件的【编辑】-【虚拟网络编辑器】2,先选择VMnet8(画1处)&#xf…

2025上海国际显示技术及应用创展览会

DIC EXPO2025中国(上海)国际显示技术及应用创展览会 时间:2025年8月7-9日 地点:上海新国际博览中心 主办单位: 中国光学光电子行业协会液晶分会 联合主办: 中国电子材料行业协会 中国电子商会 韩国…

嵌入式人工智能(32-基于树莓派4B的旋转编码器-EnCoder11)

1、旋转编码器 旋转编码器是一种输入设备,通常用于测量和控制旋转运动。它由一个旋转轴和一系列编码器组成。旋转编码器可以根据旋转轴的位置和方向来测量旋转角度,并将其转化为电子信号输出。 旋转编码器通常分为两种类型:绝对值编码器和增…

【微服务】Spring Cloud Gateway

文章目录 强烈推荐引言主要功能关键概念示例配置依赖添加常见的几种整合案例1. 与 Spring Cloud Eureka 整合2. 与 Spring Cloud Config 整合3. 与 Spring Cloud Sleuth 和 Zipkin 整合4. 与 Spring Cloud Security 整合5. 与 Resilience4j 整合6. 与 Redis 整合 结论强烈推荐专…

Matlab编程资源库(19)级数与符号方程求解

一、级数符号求和 求无穷级数的和需要 符号表达式求和函数 symsum ,其调用 格式为: symsum(s,v,n,m) 其中 s 表示一个级数的通项,是一个符号表达式。 v 是求和变 量, v 省略时使用系统的默认变量。 n 和 m 是求和的开始项 和…

如何恢复WPS文档中未保存或删除的文件

由于各种原因,您可能会丢失 WPS 文档,例如意外删除、硬盘格式化、病毒攻击等。您是否遇到过丢失未保存的 WPS 文件的情况?您知道如何恢复 WPS 文档中未保存的文件吗? WPS Office 是一款办公套件,可以作为 Microsoft O…

火山引擎VeDI数据技术分享:两个步骤,为Parquet降本提效

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 作者:王恩策、徐庆 火山引擎 LAS 团队 火山引擎数智平台 VeDI 是火山引擎推出的新一代企业数据智能平台,基于字节跳动数据平台多年的“数据…

一个私有化的中文笔记工具个人知识库,极空间Docker部署中文版『Trilium Notes』

一个私有化的中文笔记工具&个人知识库,极空间Docker部署中文版『Trilium Notes』 哈喽小伙伴们好,我是Stark-C~ 最近被很多小伙伴问到NAS上的笔记工具,虽说之前也出过Memos,刚开始用起来还不错,但是用了一段时间…