OffsetManager主要提供对offset的保存和读取,每个broker都有一个OffsetManager实例,kafka管理topic的偏移量有2种方式:

1、ZookeeperOffsetManager:调用zookeeper来存储和接收offset

Consumer offset:
/consumers/[groupId]/offsets/[topic]/[partitionId] /offset number

2、DefaultOffsetManager:提供消费者offsets内置的offset管理,即把偏移量提交至kafka内部,主要由offsets.storage参数决定,默认为zookeeper。也就是说如果配置offsets.storage= kafka,则kafka会把这种offsetcommit请求转变为一种Producer,保存至topic为“__consumer_offsets”的log里面。

offsets是怎么保存到DefaultOffsetManager?

除了将offset作为logs保存到磁盘上,DefaultOffsetManager维护了一张能快速服务于offset抓取请求的consumer offsets表.
broker在offsets表(缓存)中包含仅仅是”offsets topic”的partitions中属于leader partition对应的条目(存储的是offset).
(即这些partitions的replicas只会在他们自己的logs中有offset信息,并不会对应offset表中的条目).

offsets topic的logs的segment大小相比正常的topics设置的很低,默认”offsets.topic.segment.bytes”=10MB.
这样LogCleaner会更快地选出未清理的segments,结果就是能够更频繁地清理. 同样log的大小设置的越小也有助于
减少读取logs的时间,在把读取出来的logs信息放到offsets缓存中也更快(比如重启kafka时会重新加载日志文件).

最新文章

  1. 使用c/c++扩展python
  2. UVALive - 2965 Jurassic Remains (LA)
  3. 跟上节奏 大数据时代十大必备IT技能(转)
  4. JSON 之 SuperObject(9): TSuperType
  5. Cocos2d-x滚动列表具体解释(CCScrollView的使用)
  6. BAT-使用BAT方法判断网络启动EXE(快捷方式)
  7. 一个资深java面试官的“面试心得”
  8. Makefile 工程管理
  9. vs2015管理github代码
  10. Lucene.NET中Field.Index 和 Field.Store的几种属性的用法
  11. Mysql导入zabbix的sql语句时报错:ERROR 1045 (28000)
  12. 小结:Swift、OC语言中多target在代码中如何区分
  13. 关于SVM数学细节逻辑的个人理解(三) :SMO算法理解
  14. 初学servlet之使用web.xml配置
  15. ClickOnce一项Winform部署
  16. 利用ZYNQ SOC快速打开算法验证通路(3)——PS端DMA缓存数据到PS端DDR
  17. Excel坐标自动在AutoCad绘图_3
  18. Python解析Pcap包类源码学习
  19. 【JavaScript从入门到精通】第四课初探JavaScript魅力-04
  20. linux 下安装nginx

热门文章

  1. RFC-RTSP
  2. Codeforces899C Dividing the numbers(数论)
  3. Css3 实现循环留言滚动效果(一)
  4. MYSQL的联合查询最好是少用,效能差异巨大
  5. Docker搭建带有访问认证的私有仓库
  6. C#退出程序,退出任务管理器
  7. 自己定义ViewGroup实现仿淘宝的商品详情页
  8. iOS实现 webView loadHTMLString加载外部css、js样式
  9. MATLAB 按条件进行加和
  10. CentOS 6.5 x64相关安全,优化配置