kafka讨论下最佳配置

開開新新 发表于: 2020-11-21   最后更新时间: 2020-11-22  
broker.id=1
listeners=PLAINTEXT://192.168.10.145:9092
advertised.listeners=PLAINTEXT://192.168.10.145:9092
zookeeper.connect=192.168.10.145:2181,192.168.10.146:2181,192.168.10.147:2181
zookeeper.connection.timeout.ms=6000
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/home/kfkdata
num.network.threads=3
num.io.threads=8
num.partitions=1
num.recovery.threads.per.data.dir=1
log.cleanup.policy=delete
log.flush.interval.messages=10000
log.flush.interval.ms=1000
log.retention.hours=168
log.retention.bytes=1073741824
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0
offsets.topic.replication.factor=3
default.replication.factor=3
min.insync.replicas=1
transaction.state.log.min.isr=3
transaction.state.log.replication.factor=3
unclean.leader.election.enable=true
offsets.retention.minutes=1440
inter.broker.protocol.version=2.6.0
log.message.format.version=2.2.0
message.max.bytes=41943040
max.request.size=41943040
replica.fetch.max.bytes=41943040

不知道大家用的配置文件都配置了哪些参数,想知道如何优化配置?
我们的环境有三个broker,数据量不大,主要考虑高可用,比如说机房网络异常。

开发那边把kafka当作消息中间件,我想了解生产者发送消息时配置哪些参数最佳? 服务数据量量不大 消息1万左右,如果后期消息多了应该怎么优化?

如果需要滚动重启broker,怎么保证集群还能实时写入,不丢数据?



您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容




上一条: kafka报16 partitions have leader brokers without a matching listener
下一条: kafka拥有不同副本数量的集群,应该如何升级?

  • 说几个吧。
    1、kafka理论上配置不需要做更改,默认配置就可以了,你这1万就不用改了。
    2、kafka通过分区备份来保证高可用的,主备性能最优的。(我们全部是这么来的,跑了6年)
    3、部署kafka的节点上,尽量多预留一下内存(kafka会利用空闲的内存,增加flush速度和消息缓存)
    4、优化的核心点,一般是超时时间,和消息大小,缓存大小,等等一系列的大小(但是调整这些过大的话,要注意增加jvm)
    5、官方的生产配置方案:https://www.orchome.com/42 (周围几个连接都可以点点)

    • if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
          export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
          export JMX_PORT="9999"
      fi
      

      JVM我没有改,应该改多少合适?在什么情况下调整JVM有提升效果?

        • 第4个解释里面,调整缓存大小过大,jvm调整要调整,第5个那个链接是调整情况。你口子放大了,肯定会接收的量变大。
          超时时间是消息压力增加了,接收时间就会变慢,所以要调整。
          (ps:带宽如果接近满了,调整什么都不好使)

            • 您好,博主,我这里有一个情况就是有二十个生产者同时向kafka里写数据,极端情况下,每个生产者同时会向kafka里写150M,单节点情况下,kafka是否可以满足要求,如果满足得需要什么样的硬件要求,怎么去设计kafka的配置优化。