kafka位移主题(__consumer_offsets)

Kafka的位移主题(__consumer_offsets)用于存储消费者位移信息,取代了旧版的Zookeeper。位移主题是普通Kafka主题,但其消息格式由Kafka定义,不可随意修改。位移主题的key包含GroupID、主题名和分区号,消息体存储位移值及其他元数据。位移提交可自动或手动,自动提交可能影响位移管理的精确性。位移主题的垃圾回收通过Compaction进行,定期删除过期数据。创建位移主题通常在第一个Consumer启动时自动完成,也可手动创建,但不推荐。


  位移主题:(__consumer_offsets)它是kafka的内部主题。

介绍

  上一篇文章中我们将了位移信息的存储是要区分新老版本的,在老版本中位移信息是存放在zookeeper中的,而新版本的位移信息存放在Kafka自身的位移主题中。
  放在kafka自身的原因是,保存位移信息需要保证高频的写操作以及保存的持久性,但是zookeeper并不适合用于高频写操作的场景下。而kafka本身就适合用于频繁的写操作,所以正适合。
  说明一下:位移主题和我们自己创建的主题一样,就是普通的kafka主题。我们可以手动的创建,修改,甚至删除它。不过,大部分情况下,我们不需要花时间去管理它,kafka会照顾好它的。
  不过,尽管它是一个普通的主题,但是,它的消息格式确实kafka自己定义的。我们不能修改,也就是我们不能随意向这个主题写消息。因为一旦我们写的消息不满足kafka的格式要求,kafka就无法解析,有可能造成broker的崩溃。kafka Consumer有API帮咱们提交位移。

位移主题的key中保存的内容

  位移主题的key中应该保存三部分:<Group ID,主题名,分区号>
  消息体中,存储的出了位移值之外,还要保存位移提交的一些其它元数据,例如:时间戳和用户自定义的数据等。不过里面最重要的还是位移值。
  消息格式里面,刚刚说的只是其中一种,还有另外两种:
1:保存Consumer Group 消息的消息。它是用来注册Consumer Group的
2:用于删除Group过期位移甚至是删除Group的消息。它是tombstone消息(墓碑消息),也称delete mark。它的主要特征是它的消息体是null,即空消息。
  这种消息当某个Consumer Group下的所有Consumer实例都停止了,而且他们的位移数量都已被删除时,kaf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值