zoukankan      html  css  js  c++  java
  • Kafka的参数调优

    这篇文章主要说一下在生产过程中的kafka常用的调优参数,

    首先kafka的版本是0.9.0.1,针对以下几个方面来说,

    针对kafka的堆内存:

     针对kafka的集群调优:

    kafka的的消息机制有三种,同步 异步和 oneway

    同步(sync)的意味着消息是以batch的方式push,这样会极大的提高broker的性能,但这样也会增加数据丢失的风险

    异步(async)的参数比较多,主要有四个参数

    其中第二个消息确认机制参数有三种,当它的值为1时,kafka的leader 的partition会接受到数据,但如果leader挂了,数据会丢失.如果设置为0,那么producer不会等到broker的响应,也就是说producer不管消息发出去的死活,这样可以得到最大的吞吐量,但是数据丢失风险极高.如果设置为-1,那么producer会等到所有的partition收到消息时候等到broker的一个确认.这样可以保证最高可靠性,但同时时效性也就降低了.

    第三个参数表示缓存消息的时间,例如5秒在将数据发出去,吞吐量增大了,同时时效性也就降低了

    第四个参数表示缓存的最大消息数量

    第五个参数当设置为-1时,消息会阻塞,不会丢掉,当设置为0时,buffer队列满了会直接丢掉.

    第六个参数表示一批数据量的大小,当达到这个数值时候,producer才会发送数据.

    对于ONEWAY来说,消息可靠性最低,但是低延迟,高吞吐,对于某些不需要高可靠性的场景比较适用.

    此外 在server.properties中可增加两个参数 

    replica.socket.timeout.ms = 300000 #当集群之间网络不稳定时,调大该参数

    replica.lag.time.max.ms= 600000# 如果网络不好,或者kafka集群压力较大,会出现副本丢失,然后会频繁复制副本,导致集群压力更大,此时可以调大该参数

    在consumer.properties中可增加两个参数

    zookeeper.connection.timeout.ms = 60000

    zookeeper.sync.time.ms = 5000 

    上面两个参数时间间隔可调大一点,避免网络问题引起的节点误判下线

    最后合理设置副本数,如果broker的数量为5,那么副本设置3个足够,避免过多的冗余.

    以上就是常用的kafka参数调优,如有其它,欢迎大家补充.

  • 相关阅读:
    css的选择器
    javaScript 的变量使用
    关于外键约束
    javaScript中运算符
    css介绍和三种引入方式
    关于盒子模型
    类和类的六种关系
    DQL和DML更多操作
    javaScript的特点
    关于 让页面中的按钮 响应回车
  • 原文地址:https://www.cnblogs.com/justinyang/p/8884803.html
Copyright © 2011-2022 走看看