zoukankan      html  css  js  c++  java
  • Kafka 消息保留机制

    log.retention.ms 消息时间
    Kafka通常根据时间决定数据可以保留多久。默认使用log.retention.hours参数配置时间,默认值是168小时,也就是一周。除此之外,还有其他两个参数,log.retention.minutes和log.retention.ms,这三个参数作用是一样的,都是决定消息多久以会被删除,不过还是推荐使用log.retention.ms,如果指定了不止一个参数,Kafka会优先使用最小值的那个参数。
    log.retention.bytes 消息大小
    通过保留的消息字节数来判断小是否过期,它的值通过参数log.retention.bytes来指定,作用在每一个分区上,也就是说如果一个包含8个分区的主题,并且log.retention.bytes被设置为1GB,那么这个主题最多可以保留8GB的数据,所以,当主题的分区个数增加时,整个主题可以保留的数据也随之增加。
    如果同时指定了两个参数没只要任意一个参数得到满足,消息就会被删除。例如,假设log.retention.ms为86400000(也就是一天),log.retention.bytes的值设置为1GB,如果消息字节总数在不到一天的时间就超过了1GB,那么堆出来的部分就会被删除,相反,如果消息字节总数小与1GB,那么一天之后这些消息也会被删除,尽管分区的数据总量小于1GB

    log.segment.bytes 日志片段大小
    当消息来到broker是,它们就会被追加到分区的当前日志片段上,当日志片段大小到达log.segment.bytes指定的上限(默认是1GB)时,当前日志片段就会被关闭,一个新的日志片段就会被打开。如果一个日志之片段被关闭,就开始等待过期时间。这个参数的值越小们就会越频繁的关闭和分配新文件,从而降低了磁盘写入的整体效率。
    log.segment.ms 日志片段时间
    指定了多长时间之后日志片段会被关闭,就像log.retention.bytes和log.retention.ms这两个参数一样。log.segment.bytes和log.segment.ms这两个参数之间也不存在互斥问题。日志片段会在大小或时间达到上限时被关闭,就看哪个条件晓得到满足。默认情况下log.segment.ms没有设定值,所以只根据大小来关闭日志片段
    message.max.bytes 单条消息大小
    broker通过设置message.max.bytes参数来限制单个消息的大小,默认值时1000000,也就是1MB。如果生产者尝试发送的消息超过1MB,不仅消息不会被接受,还会受到broker返回的错误信息。跟其他与字节相关的配置参数一样,该参数指的是压缩后的消息大小,也就是说,只要压缩后的消息小于message.max.bytes指定的值,消息的实际大小可以远大于这个值。
    ————————————————
    版权声明:本文为CSDN博主「蜗牛你慢点Ⅷ」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/Tony10010/article/details/89553557

  • 相关阅读:
    20155335 俞昆 第十周作业
    课下加分项目 MYPWD 20155335 俞昆
    20155335 俞昆 实时系统 实验三
    20155335俞昆 2017-2018-1 《信息安全系统设计》第9周学习总结
    2017-2018-1 20155335 俞昆 《信息安全系统设计基础》第7周学习总结
    实验二 20155335 实验报告 固件程序设计
    2017-2018-1 20155319 《信息安全系统设计基础》第八周学习总结
    信息安全技术 实验三 数字证书应用
    第二次实验
    2017-2018-1 20155319 《信息安全系统设计基础》第七周学习总结
  • 原文地址:https://www.cnblogs.com/gao88/p/12539112.html
Copyright © 2011-2022 走看看