zoukankan      html  css  js  c++  java
  • Kafka 一些优化措施

    线程数

    在kafka/config/server.properties中配置

    #计算密集任务所需线程
    # The number of threads that the server uses for receiving requests from the network and sending responses to the network
    num.network.threads=3
    #IO密集任务所需线程
    # The number of threads that the server uses for processing requests, which may include disk I/O
    num.io.threads=8

    如果服务器cpu核心为 X ,那么

        计算密集任务所需线程 =  X

        IO密集任务所需线程 = 2 * X

    消息清除策略

    在kafka/config/server.properties中配置

    log.cleanup.policy=delete#启用删除策略
    #直接删除,删除后的消息不可恢复。可配置以下两个策略:
    #清理超过指定时间清理: 
    log.retention.hours=16
    #超过指定大小后,删除旧的消息:
    log.retention.bytes=1073741824

    一般日志服务器会保留数据30天,所以没必要kakfa保存7天,3天就够了,,如果数据丢失可以从日志服务器中取

    上面的是默认策略,其实还有一个策略,

    compact策略

    它并不是指通过压缩算法对日志文件进行压缩,而是对重复的日志进行清理来达到目的。在日志清理过程中,会清理重复的key,最后只会保留最后一条key,可以理解为map的put方法。在清理完后,一些segment的文件大小就会变小,这时候,kafka会将那些小的文件再合并成一个大的segment文件。

    另外,通过日志清理功能,我们可以做到删除某个key的功能。推送value为null的key到kafka,kafka在做日志清理时就会将这条key从日志中删去。
    ————————————————
    版权声明:本文为CSDN博主「疯狂哈丘」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u013332124/article/details/82793381

    开启压缩

    在kafka/config/producer.properties中配置

    # specify the compression codec for all data generated: none, gzip, snappy, lz4
    compression.type=none

    默认是不开启压缩,支持格式有,gzip,snappy,lz4

    内存

    在 kafka/bin/kafka-server-start.sh  中配置

     默认1G,生产中的经验值为4 到 6 G,

      最高6G,超过6G效果不明显,这时建议加服务器

     Producer缓冲区优化

    在kafka/config/producer.properties中配置

    buffer.memory:33554432 (32m)
    #在Producer端用来存放尚未发送出去的Message的缓冲区大小。缓冲区满了之后会阻塞, max.block.ms(默认1个小时)过后将会抛出异常

    数据文件刷写策略

    在server.properties中配置

    # 每当producer写入10000条消息时,刷数据到磁盘 
    log.flush.interval.messages=10000
    # 每间隔1秒钟时间,刷数据到磁盘
    log.flush.interval.ms=1000

     消息大小

    kafka对于消息体的大小默认为单条最大值是1M但是在我们应用场景中, 常常会出现一条消息大于1M,如果不对kafka进行配置。则会出现生产者无法将消息推送到kafka或消费者无法去消费kafka里面的数据,

    #producer.properties:
    #也可以在创建topic时动态设置    
    max.request.size=5242880(5M)    
    #server.properties    
    message.max.bytes=6291456(6M)    
    #consumer.properties:    
    fetch.max.bytes=7340032(7M)    
     
        
    #max.request.size < message.max.bytes < fetch.max.bytes

    https://blog.csdn.net/zchdjb/article/details/101442939 参考来源

  • 相关阅读:
    CentOS 7 安装Hadoop前的SSH免密码登录配置
    CentOS 7.1下SSH远程登录服务器详解-转
    Linux系统下如何配置SSH_Centos7 ssh连接配置 CentOS7下安全配置
    如何在CentOS 7上修改主机名
    【转】CentOS 6.3(x86_64)下安装Oracle 10g R2
    【转】CentOS 6.3(x86_32)下安装Oracle 10g R2
    【转】Linux Oracle服务启动&停止脚本与开机自启动
    Cacti在selinux开启的情况下使用
    Nagios在selinux开启的情况下使用
    Nagios状态长时间处于Pending的解决方法
  • 原文地址:https://www.cnblogs.com/yangxusun9/p/12713784.html
Copyright © 2011-2022 走看看