[转帖]Kafka中offsets.retention.minutes和log.retention.minutes之间的区别
https://www.cnblogs.com/lestatzhang/p/10771115.html
前言
在Kafka中,我们可能会发现两个与retention相关的配置:
- log.retention.minutes
- offsets.retention.minutes
那么它们之前的差别是什么呢?
定义
首先让我们看看它们在官方文档中的定义
| 名称 | 描述 | 类型 | 默认值 | 有效值 | 重要性 |
|---|---|---|---|---|---|
| log.retention.minutes | The number of minutes to keep a log file before deleting it (in minutes), secondary to log.retention.ms property. If not set, the value in log.retention.hours is used 在删除日志文件之前保留日志文件的分钟数(以分钟为单位),优先级弱于 log.retention.ms。 如果未设置,则使用log.retention.hours中的值 |
int | null | 高 | |
| offsets.retention.minutes | Log retention window in minutes for offsets topic 主题偏移量日志文的保留时长(分钟) |
int | 1440 | [1,...] | 高 |
两者的差别
log.retention.minutes设定的是消息日志的保留时长,而offsets.retention.minutes则是记录topic的偏移量日志的保留时长。
偏移量是指向消费者已消耗的最新消息的指针。 比如,你消费了10条消息,那么偏移量将移动10个位置。 这个偏移量会被记录到日志中,以便我们下次消费时知道应该从哪个offset开始继续消费。
而offsets.retention.minutes允许我们将偏移量重置,即它会清除过期的记录主题偏移量的日志,一旦记录主题偏移量的日志被清楚,我们将不知道之前消费到具体哪个offset。这个设置并不会影响消息日志的保留时间。
比如我们将offsets.retention.minutes设为10,即十分钟。然后最后一次主题A的消费偏移量是100,但是十分钟内我们没有继续消费,该记录主题A的消费偏移量100的日志将会被清除,也就是下次继续消费主题A的消息时,我们不知道上一次消费哪里了(注意,主题A所存储的消息依旧在broker上,并没有被删除), 在这种情况下,将会根据auto.offset.reset 的设置,读取最早(smallest)/最晚(largest)的消息。
一般来说,记录topic的偏移量日志的保留时长需要设置的比消息日志的保留时长更大。
[转帖]Kafka中offsets.retention.minutes和log.retention.minutes之间的区别的更多相关文章
- socket编程中write、read和send、recv之间的区别~转载
socket编程中write.read和send.recv之间的区别 http://blog.csdn.net/petershina/article/details/7946615 一旦,我们建立 ...
- C#中IEnumerable、ICollection、IList、List之间的区别
IEnumerable.ICollection.IList.List之间的区别,本文分别分析了它的实现源码,从而总结出了它们之间的关系和不同之处. 首先我看看 IEnumerable: // 摘要: ...
- Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
简介 最近了解到很多网页开发者对jquery中的 .bind() .live() .delegate() 和 .on() 方法存在很多的疑惑.这些疑惑通常是关于它们之间真正的区别是什么啊,什么时候该使 ...
- socket编程中write、read和send、recv之间的区别
http://blog.csdn.net/petershina/article/details/7946615 一旦,我们建立好了tcp连接之后,我们就可以把得到的fd当作文件描述符来使用. 由此网络 ...
- Swift中元组(Tuples),结构体(Struct),枚举(Enums)之间的区别
Swift有许多种存储数据方式,你可以用枚举(enums),元组(tuples),结构体(structs),类(classes),在这篇文章中我们将比较枚举.元组.结构体之间区别,首先从最简单的开始- ...
- SERVLET中的doGet与doPost两个方法之间的区别
get和post是http协议的两种方法,另外还有head, delete等 这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串.post的参数是通过另外的 ...
- Python 中格式化字符串 % 和 format 两种方法之间的区别
Python2.6引入了 format 格式化字符串的方法,现在格式化字符串有两种方法,就是 % 和 format ,具体这两种方法有什么区别呢?请看以下解析. # 定义一个坐标值 c = (250, ...
- Python中的赋值(复制)、浅拷贝、深拷贝之间的区别
1.赋值: 只是复制了新对象的引用,不会开辟新的内存空间. 2.浅拷贝: 创建新对象,其内容是原对象的引用. 浅拷贝有三种形式:切片操作,工厂函数,copy模块中的copy函数. 如: ...
- c++中typedef、define、const、inline之间的区别
1.typedef和#define的区别 typedef int* pInt; , b = ; const pInt p1 = &a; //p1是常量指针 pInt const p2 = &a ...
- ASP.NET Core中GetService()和GetRequiredService()之间的区别
上篇文章<在.NET Core 3.0中的WPF中使用IOC图文教程>中,我们尝试在WPF中应用.NET Core内置的IOC进行编程,在解析MainWindow的时候我用了GetRequ ...
随机推荐
- 2023年资深C#开发者的思考
2023年转眼间就这样过掉了,作为一名资深C#的开发员人员,年龄也大了1岁,从最早接触C#开始,算下来已经超过15年以上了,随着工作经验的不断增加,物价不断的飞涨以及家庭支出的不断上涨,工作1份工资已 ...
- C# 添加OLE到PPT幻灯片
本文介绍通过C#程序代码来添加OLE对象到PPT幻灯片的方法.这里以将Excel文档为对象插入到PPT幻灯片中的指定位置:添加时,将Excel中的单元格范围保存为图片,将图片以嵌入的方式添加到幻灯片, ...
- C++篇:第四章_数组_知识点大全
C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器 四.数组 (一)数组标准 以数组名作函数参数时,实参数组与形参数组都不必定义长度 ...
- 干货分享丨轻松玩转 Huawei LiteOS 传感框架
摘要:LiteOS传感框架将物联网终端设备上不同类型的传感器统一管理,通过抽象不同类型传感器接口,屏蔽其硬件细节,做到"硬件"无关性,非常方便于物联网设备的开发.维护和功能扩展. ...
- 即使不会node.js,拖拽就可完成数据的可视化展示
摘要:node-red是一款基于Node.js的开源可视化界面开发工具,不需要掌握node.js而通过拖拽即可完成数据的可视化展示. 1.首先看一下node-red对数据的渲染效果 你可能认为,必须熟 ...
- C++多线程强制终止
摘要:实际上,没有任何语言或操作系统可以为你提供异步突然终止线程的便利,且不会警告你不要使用它们. 本文分享自华为云社区<如何编写高效.优雅.可信代码系列(1)--C++多线程强制终止>, ...
- vue2升级vue3:vue3 hooks库选用
之前a-hooks:https://ahooks.js.org/,比react-use 精简好用.但是没有vue版本的. 网上有个人实现的:https://github.com/dewfall123/ ...
- iOS应用程序发布流程:从测试到上架的完整指南
目录 转载:iOS应用程序的签名.重签名和安装测试 前言 打开要处理的IPA文件 设置签名使用的证书和描述文件 开始ios ipa重签名 转载:iOS应用程序的签名.重签名和安装测试 前言 ipa ...
- 如何注册appuploader账号
如何注册appuploader账号 我们上一篇讲到appuploader的下载安装,要想使用此软件呢,需要注册账号才能使用,今 天我们来讲下如何注册appuploader账号来使用软件. 1.A ...
- HeaderMap Method has too many Body parameters
在 Feign 方法里面添加 Header 报 Method has too many Body parameters @PostMapping(value = "/sendsms" ...