潦草白纸

kafka配置简要描述

配置文件在config/server.properties

下面的一些配置可能是你需要进行修改的。

这里为官方提供配置文件解释:https://kafka.apache.org/08/configuration.html

字段名 注释 备注 推荐配置(如留空,则选用默认配置则可)

broker.id

整数,建议根据ip区分

 

推荐利用ip如:192.168.1.1;

则利用ip末位作为id;

方便对应ip寻找broker

log.dirs

kafka存放消息文件的路径,

默认/tmp/kafka-logs  

port

broker用于接收producer消息的端口

默认9092  

zookeeper.connnect

zookeeper连接

格式为 ip1:port,ip2:port,ip3:port  

message.max.bytes

单条消息的最大长度

   
num.recovery.threads.per.data.dir 每个数据目录用来日志恢复的线程数目    
socket.send.buffer.bytes 通信发送缓存空间大小 默认102400  
socket.receive.buffer.bytes 通信接收缓存空间大小 默认102400  
socket.request.max.bytes 通信请求最大接收限制,The maximum request size the server will allow. This prevents the server from running out of memory and should be smaller than the Java heap size. 存在OOM(内存溢出)风险  推荐小于zookeeper 的heapsize

num.network.threads

broker用于处理网络请求的线程数

如不配置默认为3,server.properties默认是2  

num.io.threads

broker用于执行网络请求的IO线程数

如不配置默认为8,server.properties默认是2可适当增大 16

queued.max.requests

排队等候IO线程执行的requests

默认为500 1024

host.name

broker的hostname

默认null,建议写主机的ip,不然消费端不配置hosts会有麻烦  

num.partitions

topic的默认分区数

默认1 16

log.retention.hours

消息被删除前保存多少小时

默认1周168小时  
log.flush.interval.messages

log文件“sync”到磁盘之前累积的消息条数。

因为磁盘IO操作是一个慢操作,但又是一个“数据可靠性”的必要手段,所以检查是否需要固化到硬盘的时间间隔。

需要在“数据可靠性”与“性能”之间做必要的权衡,

如果此值过大,将会导致每次“发sync”的时间过长(IO阻塞),

如果此值过小,将会导致“fsync”的时间较长(IO阻塞),

如果此值过小,将会导致”发sync“的次数较多,这也就意味着整体的client请求有一定的延迟,物理server故障,将会导致没有fsync的消息丢失。

   
log.flush.scheduler.interval.ms 检查是否需要fsync的时间间隔    
log.segment.bytes kafka中log日志是分成一块块存储的,此配置是指log日志划分成块的大小    
log.retention.check.interval.ms 检查日志分段文件的间隔时间,以确定是否文件属性是否到达删除要求。    

default.replication.factor

消息备份数目

默认1不做复制 3

num.replica.fetchers

用于复制leader消息到follower的IO线程数

默认1  

启动配置文件

对应目录bin/kafka-server-start.sh 脚本

修改 KAFKA_HEAP_OPTS 处 -Xmx 和 -Xms 的值

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx2.5G -Xms2.5G"
fi

 

posted on 2016-02-19 14:41  潦草白纸  阅读(901)  评论(0编辑  收藏  举报

导航