broker配置的选择与优化

1.分区数(num.partition)的选择

num.partition指定新创建的主题的分区数,只能增,不能减。一般来说 分区数 大于等于 消费者数。

2.日志保留策略

kafka默认会保留消息一周,通过 log.retention.ms/hours等进行设置。
另一种方式是通过保留的消息的大小。如log.retention.bytes=1000000000表示当分区数据总量超过1GB时,消息会被删除

3.单个消息的大小(message.max.bytes)

默认为1MB。这个值对性能有显著的影响。Kafka设计的初衷是迅速处理短小的消息,一般10K大小的消息吞吐性能最好。
message.max.bytes必须小于consumer设置的fetch.message.max.bytes,否则消费者无法读取比较大的信息

4.虚拟机的网络优化

对分配给socket读写缓冲区的内存大小进行调整可以显著提升网络的传输性能。net.core.wmem.default和net.core.reme_默认值为128K,可以将其设置为2MB或者其最大值
除了设置socket,还要设置TCP socket的读写缓冲区,他们的参数为net.ipv4.tcp_wmem和net.ipv4.tcp.rmem。尽量调大呗

5.垃圾回收器设置

推荐使用G1回收器。kafka对堆内存使用率很高,容易产生垃圾对象。
可以设置InitiatingHeapOccupancyPercent为35(默认45%,表示堆内存的使用率达到45%之前,G1不会启动垃圾回收)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容