kafka的数据存储

kafka的数据存储

分片和副本机制

解决单台服务器内存有限的情况,将数据分成多个partition存放在多个服务器上,每个服务器上的数据叫做一个分片

kafka中的消息以topic进行分类,生产者和消费者都是面向topic的。

topic是逻辑上的概念,partition是物理上的概念,每个partition对应一个log文件,log文件中存储的是producer生产的数据,producer生产的数据不断地追加到log文件的末尾,每条数据有自己的offset。消费者会记录消费到了哪个offset

副本机制解决了数据存储的高可用的问题

当数据只存储一份时,有丢失的风险,为了容错,将数据拷贝积分,保存到不同的机器上

文件存储机制

一个topic可以分成多个partition

一个partition可以分成多个segment

一个segment对应.log和.index两个文件 当log文件达到1G后,形成一个新的文件 index是log文件的索引文件,为了提升log文件的效率 文件名为存储的消息的起始偏移量

kafka进行多文件存储的原因

  • 保证每个文件不过大,使读取效率提高
  • kafka只是临时存储文件,会定期删除定期文件。如果数据放置在一个文件中,需要对整个文件进行遍历,效率低下。分成多个文件之后,只需要看文件最后修改的时间即可
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

健鑫.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值