zoukankan      html  css  js  c++  java
  • Kafka server部署配置优化

    Kafka配置优化其实都是修改server.properties文件中参数值

    1、网络和io操作线程配置优化

         # broker处理消息的最大线程数
            num.network.threads=xxx
        #  broker处理磁盘IO的线程数
            num.io.threads=xxx

    建议配置:

    一般num.network.threads主要处理网络io,读写缓冲区数据,基本没有io等待,配置线程数量为cpu核数加1.

    num.io.threads主要进行磁盘io操作,高峰期可能有些io等待,因此配置需要大些。配置线程数量为cpu核数2倍,最大不超过3倍.

    2、log数据文件刷盘策略

    为了大幅度提高producer写入吞吐量,需要定期批量写文件。

    建议配置:

    # 每当producer写入10000条消息时,刷数据到磁盘

    log.flush.interval.messages=10000

    # 每间隔1秒钟时间,刷数据到磁盘

    log.flush.interval.ms=1000 

    3、日志保留策略配置

    当kafka server的被写入海量消息后,会生成很多数据文件,且占用大量磁盘空间,如果不及时清理,可能磁盘空间不够用,kafka默认是保留7天。

    建议配置:

    # 保留三天,也可以更短 

    log.retention.hours=72

    # 段文件配置1GB,有利于快速回收磁盘空间,重启kafka加载也会加快(如果文件过小,则文件数量比较多,

    # kafka启动时是单线程扫描目录(log.dir)下所有数据文件)

    log.segment.bytes=1073741824 

    4、replica复制配置

    每个follow从leader拉取消息进行同步数据,follow同步性能由这几个参数决定,分别为拉取线程数(num.replica.fetchers)、最小字节数(replica.fetch.min.bytes)、最大字节数(replica.fetch.max.bytes)、最大等待时间(replica.fetch.wait.max.ms)

    建议配置:

    num.replica.fetchers 配置多可以提高follower的I/O并发度,单位时间内leader持有跟多请求,相应负载会增大,需要根据机器硬件资源做权衡

    replica.fetch.min.bytes=1  默认配置为1字节,否则读取消息不及时

    replica.fetch.max.bytes= 5  * 1024 * 1024 默认为1MB,这个值太小,5MB为宜,根据业务情况调整

    replica.fetch.wait.max.ms  follow拉取频率,频率过高,会导致cpu飙升,因为leader无数据同步,leader会积压大量无效请求情况,又因为0.8.2.x版本存在bug,定时器超时检查比较消耗CPU,使用者需要做好权衡

    5、配置jmx服务

    kafka server中默认是不启动jmx端口的,需要用户自己配置

    [lizhitao@root kafka_2.10-0.8.1]$ vim bin/kafka-run-class.sh

    #最前面添加一行

    JMX_PORT=8060

  • 相关阅读:
    java开发实战经典
    defer属性---->执行外部脚本
    深入理解JavaScript 模块模式
    JavaScript模块化开发一瞥
    缓存是新的内存
    php站点
    数据库
    .NET中使用Redis
    Scrum中的User Story
    如何编写敏捷开发中的user story
  • 原文地址:https://www.cnblogs.com/moonandstar08/p/6139463.html
Copyright © 2011-2022 走看看