面试题:Kafka(一)

1. Kafka如何保证消息不丢失

生产者发送消息到Brocker丢失

  • 设置异步发送 

  • 消息重试

 

消息在Brocker中存储丢失

  • 发送确认机制acks

 

消费者从Brocker接收消息丢失

  • Kafka 中的分区机制指的是将每个主题划分成多个分区(Partition)
  • topic分区中消息只能由消费者组中的唯一一个消费者处理,不同的分区分配给不同的消费者(同一个消费者组)

消费者默认是自动按期提交已经消费的偏移量,默认是每隔5s提交一次 如果出现重平衡的情况,可能会重复消费或丢失数据 

 禁用自动提交偏移量,改为手动

  • 同步提交
  • 异步提交
  • 同步+异步组合提交

 

2. Kafka是如何保证消费的顺序性

问题原因:

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

解决方案:

  • 发送消息时指定分区号
  • 发送消息时按照相同的业务设置相同的key 

 

3. Kafka的高可用机制有了解过嘛

集群模式

分区备份机制 

 

4. Kafka数据清理机制了解过嘛

Kafka存储结构

  • Kafka中topic的数据存储在分区上,分区如果文件过大会分段存储segment
  • 每个分段都在磁盘上以索引(xxxx.index)和日志文件(xxxx.log)的形式存储
  • 分段的好处是,第一能够减少单个文件内容的大小,查找数据方便,第二方便kafka进行日志清理。

日志的清理策略有两个:

  1. 根据消息的保留时间,当消息保存的时间超过了指定的时间,就会触发清理,默认是168小时( 7天)
  2. 根据topic存储的数据大小,当topic所占的日志文件大小大于一定的阈值,则开始删除最久的消息。(默认关闭)

5. Kafka中实现高性能的设计有了解过嘛

  • 消息分区:不受单台服务器的限制,可以不受限的处理更多的数据
  • 顺序读写:磁盘顺序读写,提升读写效率
  • 页缓存:把磁盘中的数据缓存到内存中,把对磁盘的访问变为对内存的访问
  • 零拷贝:减少上下文切换及数据拷贝
  • 消息压缩:减少磁盘IO和网络IO
  • 分批发送:将消息打包批量发送,减少网络开销

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[Redis#1] 前言 | 再谈服务端高并发分布式结构的演进

目录 电子商务应用架构演进 概述 常见概念 架构演进 总结 总结 应用(Application)/ 系统(System) 模块(Module)/ 组件(Component) 分布式(Distributed&#xff0…

洛谷刷题日记||基础篇9(线性表)

代码思路: 初始化圈:利用 std::list 保存编号为 1 到 n 的人。循环报数:利用迭代器模拟报数的过程,每次数到 m 时将对应的人出圈。循环处理:std::list::erase 删除出圈的人,并返回下一个人的迭代器&#x…

Elasticsearch开启认证及kibana密码登陆

Elasticsearch不允许root用户运行,使用root用户为其创建一个用户es,为用户es配置密码,并切换到es用户。 adduser elastic passwd elastic su elasticElasticsearch(简称ES)是一个基于Lucene的搜索服务器。它提供了一个分布式、多用户能力的全文搜索引擎,基于RESTful web…

ESLint的简单使用(js,ts,vue)

一、ESLint介绍 1.为什么要用ESLint 统一团队编码规范(命名,格式等) 统一语法 减少git不必要的提交 减少低级错误 在编译时检查语法,而不是等js引擎运行时才检查 2.eslint用法 可以手动下载配置 可以通过vue脚手架创建项…

学习threejs,使用AnimationMixer实现变形动画

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.AnimationMixer 动画…

嵌入式驱动开发详解1(系统调用)

文章目录 符设备驱动架构read函数详解用户层read函数内核层read函数 具体实现用户层代码 内核层代码细节分析 符设备驱动架构 如上图所示,应用层程序直接用系统提供的API函数即可调用驱动层相应的函数,中间的具体过程都是由linux内核实现的,…

算法.图论-习题全集(Updating)

文章目录 本节设置的意义并查集篇并查集简介以及常见技巧并查集板子(洛谷)情侣牵手问题相似的字符串组岛屿数量(并查集做法)省份数量移除最多的同行或同列石头 本节设置的意义 主要就是为了复习图论算法, 尝试从题目解析的角度,更深入的理解图论算法… 并查集篇 并查集简介以…

解决Ubuntu18.04及以上版本高分辨率下导致字体过小问题

解决Ubuntu18.04及以上版本高分辨率下导致字体过小问题 Chapter1 解决Ubuntu18.04及以上版本高分辨率下导致字体过小问题 Chapter1 解决Ubuntu18.04及以上版本高分辨率下导致字体过小问题 目前使用的是三星4K显示屏,屏幕分辨率太高了,导致VMWare Workst…

第27天 安全开发-PHP应用TP 框架路由访问对象操作内置过滤绕过核心漏洞

时间轴 演示案例 TP 框架-开发-配置架构&路由&MVC 模型 TP 框架-安全-不安全写法&版本过滤绕过 TP 框架-开发-配置架构&路由&MVC 模型 参考: https://www.kancloud.cn/manual/thinkphp5_1 1、配置架构-导入使用 去thinkphp官网可以看到&…

Mac的Terminal随机主题配置

2024年8月8日 引言 对于使用Mac的朋友,如果你是一个程序员,那肯定会用到Terminal。一般来说Terminal就是一个黑框,但其实Terminal是有10款官方皮肤。 每个都是不一样的主题,颜色和字体都会有所改变。现在就有一个方法可以很平均…

开源项目低代码表单设计器FcDesigner获取表单的层级结构与组件数据

在使用开源项目低代码表单设计器FcDesigner时,获取和理解表单的层级结构非常关键。通过getDescription和getFormDescription方法,您可以清晰掌握表单组件的组织结构和层次关系。这些方法为操控表单的布局和配置提供了强大的支持。 源码地址: Github | G…

ReactPress vs VuePress vs RectPress

ReactPress:重塑内容管理的未来 在当今数字化时代,内容管理系统(CMS)已成为各类网站和应用的核心组成部分。ReactPress作为一款融合了现代Web开发多项先进技术的开源发布平台,正以其卓越的性能、灵活性和可扩展性&…

无人机在森林中的应用!

一、森林资源调查 无人机可以利用遥感技术快速获取所需区域高精度的空间遥感信息,对森林图斑进行精确区划。相较于传统手段,无人机调查具有低成本、高效率、高时效的特点,尤其在地理环境条件不好的区域,调查人员无法或难以到达的…

RTC纽扣电池寿命问题分析

一、 问题描述 一款带RTC功能的终端产品,RTC使用寿命设计要求高于5年,产品研发后测试,发现VDD_BATT的电流大于100uA,导致产品实际计算出来寿命只有半年之久,下图是RTC电路图: 图1 RTC供电电路 二、 原因分…

python成长技能之正则表达式

文章目录 一、认识正则表达式二、使用正则表达式匹配单一字符三、正则表达式之重复出现数量匹配四、使用正则表达式匹配字符集五、正则表达式之边界匹配六、正则表达式之组七、正则表达式之贪婪与非贪婪 一、认识正则表达式 什么是正则表达式 正则表达式(英语&…

ElasticSearch学习笔记三:基础操作(一)

一、前言 上一篇文章中,我们学习了如何使用Java客户端去连接并且简单的操作ES,今天我们将对ES中的基本操作进行学习,包括索引操作、映射操作、文档操作。 二、索引操作 简单回顾一下索引,ES中的索引就有相同结构的数据的集合&a…

【AIGC】如何使用高价值提示词Prompt提升ChatGPT响应质量

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | 提示词Prompt应用实例 文章目录 💯前言💯提示词英文模板💯提示词中文解析1. 明确需求2. 建议额外角色3. 角色确认与修改4. 逐步完善提示5. 确定参考资料6. 生成和优化提示7. 生成最终响…

通过华为鲲鹏认证发行上市的集成平台产品推荐

华为鲲鹏认证是技术实力与品质的权威象征,代表着产品达到了高标准的要求。从技术层面看,认证确保产品与华为鲲鹏架构深度融合,能充分释放鲲鹏芯片的高性能、低功耗优势,为集成平台的高效运行提供强大动力。在安全方面,…

500左右的骨传导耳机哪个牌子好?用户体验良好的五大骨传导耳机

作为一名拥有十几年从业经验的科技爱好者,我主要想告诉大家一些关于骨传导耳机的知识。其中,要远离所谓的不专业产品,它们的佩戴不适和音质不佳问题高得吓人,尤其是很多宣称能提供舒适佩戴和高音质的产品,超过九成的用…

【MySQL】RedHat8安装mysql9.1

一、下载安装包 下载地址:MySQL Enterprise Edition Downloads | Oracle MySQL :: MySQL Community Downloads 安装包:mysql-enterprise-9.1.0_el8_x86_64_bundle.tar 官方 安装文档:MySQL Enterprise Edition Installation Guide 二、安装…