大数据面试题:Kafka的Message包括哪些信息

news2024/12/27 14:45:52

面试题来源:

《大数据面试题 V4.0》

大数据面试题V3.0,523道题,679页,46w字

参考答案:

一个 Kafka 的 Message 由一个固定长度的 header 和一个变长的消息体 body 组成,header 部分由一个字节的 magic(文件格式)和四个字节的 crc32(用于判断 body 消息体是否正常)构成。当 magic 的值为 1 的时候,会在 magic 和 crc32 之间多一个字节的数据:attributes(保存一些相关属性,比如是否压缩、压缩格式等等);如果 magic 的值为 0,那么不存在 attributes 属性。

body 是由 N 个字节构成的一个消息体,包含了具体的 key/value 消息。

 具体字段解释如下:

  • CRC32:4个字节,消息的校验码。

  • magic:1字节,魔数标识,与消息格式有关,取值为0或1。当magic为0时,消息的offset使用绝对offset且消息格式中没有timestamp部分;当magic为1时,消息的offset使用相对offset且消息格式中存在timestamp部分。所以,magic值不同,消息的长度是不同的。

  • attributes: 1字节,消息的属性。其中第0~ 2位的组合表示消息使用的压缩类型,0表示无压缩,1表示gzip压缩,2表示snappy压缩,3表示lz4压缩。第3位表示时间戳类型,0表示创建时间,1表示追加时间。

  • timestamp: 时间戳,其含义由attributes的第3位确定。

  • key length:消息key的长度。

  • key:消息的key。

  • value length:消息的value长度。

  • value:消息的内容

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

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

相关文章

Android 12 LED 定制灯效开发小结

文章目录 背景:Android 10 的设备上测试正常Android 12 中目前出现无法闪烁的问题电量变化广播监听总结参考 背景: 在定制的Android 10系统中,通过修改 Framwork 层的代码后,调用标准的接口后,能实现 LED 灯的闪烁灯效…

抖音旋转验证码分析

旋转验证码类型challenge_code为99996, 拿到的旋转验证码通常都是如下: 待旋转的图片: 旋转的背景图: 加密分析过程 可以参考:https://blog.csdn.net/weixin_38819889/article/details/129727564 旋转的难点在于如何…

英国 Tortoise Media发布2023年全球AI指数排名;美团宣布完成收购光年之外

🦉 AI新闻 🚀 美团宣布完成收购光年之外,加强人工智能竞争力 摘要:美团在公告中宣布于2023年6月29日盘后收购光年之外的全部权益,以加强其在快速增长的人工智能行业中的竞争力。光年之外是中国领先的通用人工智能创新…

【ISO26262】汽车功能安全第一部分:术语

【tommi_wei@163.com】 故障响应时间 fault reaction time 从故障(2.42) 探测到进入安全状态(2.102) 的时间间隔。 故障容错时间间隔 fault tolerant time interval 在危害事件(2.59) 发生前, 系统(2.129) 中一个或多个故障(2.42) 可存在的时间间隔。 功能安全 functio…

C语言之网络高级编程笔记

基于Webserver的工业数据采集项目 html cgi Modbus协议 (应用层) 工具:Modus Slave/Poll wireshark Postman 一、Modbus起源 1.起源: Modbus由Modicon公司于1979年开发,是一种工业现场总线协议标准。 Modbus通信协议具有多个变种&#xf…

【Matlab】神经网络遗传算法函数极值寻优——非线性函数求极值

目前关于神经网络遗传算法函数极值寻优——非线性函数求极值的博客资源已经不少了,我看了下来源,最初的应该是来自于Matlab中文论坛,论坛出版的《MATLAB神经网络30个案例分析》第4章就是《神经网络遗传算法函数极值寻优——非线性函数极值寻优…

考研算法35天:三元组的最小距离 【双指针,滑动窗口,多路归并】

算法详解 多路归并;多路归并算法从理论到应用(易懂)_留恋单行路的博客-CSDN博客 多路归并就是将多个已经归并排序排好序的数组再进行排序(不一定是通过归并排序)。 算法题目 这道题就是一般做法是先通过排序将三个数组排好然后再进行三指针求最小。但…

4.23 时域微积分特性

时域微分还有个证明方式 2式两边求导即可推出时域微分特性

ElasticSearch学习01——Windows10环境下ES安装经验与踩到的坑

由于对ES基本概念和历史演进在网上随处可查,所以本文在此不做赘述.随意本文直接讲述如何安装使用ES 1.安装JDK ​ ElasticSearch是基于lucence开发的,也就是运行需要java jdk支持。所以要先安装JAVA环境。由于ElasticSearch 5.x 往后依赖于JDK 1.8的,所…

配置Jenkins的slave agent并使用它完成构建任务

上一章,使用单机配置并运行了一个简单的maven项目,并发布到了一个服务器上启动。这一章将要配置一个slave agent,并将上一章的job放到agent上执行。我们agent使用的是ssh的方式 前置步骤 准备两台虚拟机: 192.168.233.32&#…

4.27 功率谱

功率信号能量一定是无穷大的 1处解释,由于上述信号是截断信号,只有-T/2 ~ T/2有有效信号,因此有了1式 能量信号和能量密度构成傅里叶变换对 功率信号和功率密度构成傅里叶变换对 自相关函数和他的能量谱或者功率谱构成傅里叶变换对

Quiz 12: Regular Expressions | Python for Everybody 配套练习_解题记录

文章目录 Python for Everybody课程简介Regular Expressions单选题(1-8)操作题Regular Expressions Python for Everybody 课程简介 Python for Everybody 零基础程序设计(Python 入门) This course aims to teach everyone the …

CPU acceleration status: KVM requires a CPU that supports vmx or svm

关闭虚拟机,选择处理器将虚拟化引擎第一个选项选上,重新打开虚拟机,进行编译打开模拟器。 source build/envsetup.shlunch aosp_x86_64-engemulator

mesh网格数据解析及cesium绘制格网三角网可视化实现

代码实现运行效果 技术术语 Mesh通常指网络拓扑中的网状结构。在计算机网络中,Mesh是指每个节点都与其他节点相连,形成一个无中心的网状结构。Mesh网络常见于分布式计算、传感器网络、互联网等场景中。另外,在3D计算机图形学中,M…

前端web入门-移动web-day08

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 平面转换 平面转换 transform 平面转换 – 平移 平移实现居中效果 平面转换 – 旋转 平面转换 – 改…

最新特斯拉电机控制器4D1实拍

特斯拉发布过自己的扁线电机,最近Ingineerix大神发布了特斯拉最新动力系统的拆机视频,本篇结合之前的Tesla Model 3 SIC 控制器(控制器具体命名不清楚,以最熟悉的一款车型进行描述我们不妨称之为第二代,第一代为单管IG…

Web安全——JavaScript基础(加入案例)

JavaScript基础 一、概述二、嵌入方法1、内嵌式2、外链式3、行内式 三、语句四、注释五、变量六、JavaScript 保留关键字七、JavaScript 作用域1、JavaScript 局部变量2、JavaScript 全局变量 八、数据类型1、判断类型2、数字类型(Number)3、字符串型&am…

满汉楼项目

满汉楼项目 1. 满汉楼介绍 满汉楼是一个综合餐饮管理系统,其主要分为: 人事登记:各部门人员信息登录管理:员工号、姓名、职位、密码菜谱价格:菜谱及价格报表统计:统计销售额成本及库房:名称注…

深度学习优化算法

梯度下降算法 随机梯度下降。随机梯度下降是指每次迭代在训练数据中随机抽取一个数据计算梯度来更新模型得参数。随机梯度下降容易受到噪声干扰,训练时间长,代价函数最终会围绕全局最小值或者局部极小值震荡。批量梯度下降。每次迭代时使用所有的训练数据来计算梯度更新模型的…

vue使用emit控制改变父组件的值,实现子组件的显示与隐藏

vue使用emit控制改变父组件的值,实现子组件的显示与隐藏 需求概述 父组件在提交表单后,弹框进行提示,子组件是一个弹框。 vue版本 v2.x 实现原理 在父组件内建立控制器isShowModal,使用v-if来控制子组件的显示与隐藏。在子组…