zoukankan      html  css  js  c++  java
  • kafka 消息存储分析

          kafka 可以支持海量数据发送,轻轻松松QPS过十万,如果JVM内存存储这一块如果不够优秀,根本无法支持这么庞大的QPS。

         存储架构(这里这是落地数据,并木有涉及到序列化发送数据到broker)

         

    RecordAccumulator : 此类充当将记录累积到MemoryRecords
    RecordBatch:按TOPIC-PARTITION维度记录要发送的数据
    MemoryRecords:需要发送的数据暂存储的地方

     

       通过MemoryRecords属性,我们可以还原存储过程,利用compressor 向 buffer 写入数据完成数据的临时存储。

            存储格式,严格按照kafka 消息模型来存储的(看过kafka V0版本消息模型,是不是很熟悉) 

        tips:这里数据存储,为啥不用Java bean这种方式来实现,而是采用ByteBuffer,用byte[]来存储,主要是因为节约内存,ByteBuffer方式要比Java bean 节约40%的内存

        具体实现过程

     
     
  • 相关阅读:
    maven常用命令介绍(持续更新)
    JQ笔记
    AspNetPager学习使用2
    AspNetPager学习使用1
    VS2012添加ADO实体数据模型
    手动拍摄0008
    程序自动拍摄0007
    曝光补偿0006
    白平衡0005
    感光度0004
  • 原文地址:https://www.cnblogs.com/huxuhong/p/13821491.html
Copyright © 2011-2022 走看看