下载解压 kafka 后,在 kafka/config 下有 3 个配置文件与主题的生产、消费相关。
- server.properties--服务端配置
- producer.properties--生产端配置
- consumer.properties--消费端配置
这里主要介绍服务端的参数配置。
server.properties
#指定 kafka集群中 broker 的全局编号,每一个 broker 的编号不能重复。 broker.id=0 #Listeners 指明 broker 监听客户端连接的地址列表,即客户端要连接 broker 的入口地址列表, #配置格式为protocol://hostname:port,多个地址中间以逗号隔开, #其中 protocol 代表协议类型,Kafka 当前支持的协议类型有 PLAINTEXT、SSL、SASL_SSL 等,如果未开启安全认证,则使用简单的 PLAINTEXT 即可; #hostname 代表主机名,主机名最好不要为空,这里是 localhost; #port 代表服务端口,producer或consumer将在此端口建立连接,这里是 9092。 listeners=PLAINTEXT://localhost:9092 #advertised.listeners 主要用于 IaaS(Infrastructure as a Service)环境, #若多块网卡包含私网网卡和公网网卡,配置 listeners 参数绑定私网IP地址供 broker 间通信使用, #配置advertised.listeners 参数绑定公网IP供外部客户端使用, advertised.listeners=PLAINTEXT://localhost:9092 #broker 处理网络请求的线程数量,也就是接收消息的线程数,一般情况下不需要去修改。 #接收线程会将接收到的消息放到内存中,然后再从内存中写入磁盘。 num.network.threads=3 #消息从内存中写入磁盘时使用的线程数量。 #用来处理磁盘IO的线程数量。 num.io.threads=8 #发送套接字的缓冲区大小。 socket.send.buffer.bytes=102400 #接受套接字的缓冲区大小。 socket.receive.buffer.bytes=102400 #请求套接字的缓冲区大小。 socket.request.max.bytes=104857600 #kafka运行日志存放的路径 log.dirs=/usr/local/kafka/log/kafka #topic在当前broker上的分片数 num.partitions=1 #日志默认会被保留7天的时间,超时的话就会被清理,清理这件事情就需要有一些线程来做。 #这里就是用来设置恢复和清理data下数据的线程数量。 num.recovery.threads.per.data.dir=1 #主题的副本数量 offsets.topic.replication.factor=1 #事务主题的复制因子,设置更高以确保可用性。 transaction.state.log.replication.factor=1 #覆盖事务主题的min.insync.replicas配置。 transaction.state.log.min.isr=1 #接收线程会将接收到的消息放到内存中,然后再从内存写到磁盘上, 什么时候将消息从内存中写入磁盘,就有一个时间限制(时间阈值)和一个数量限制(数量阈值) #这里设置的是数量阈值,消息的条数达到阈值,将触发flush到磁盘。下一个参数设置的则是时间阈值。 log.flush.interval.messages=10000 #消息buffer的时间,达到阈值,将触发将消息从内存flush到磁盘,单位是毫秒。 log.flush.interval.ms=1000 #日志文件保留的最长时间,单位小时,默认保留7天(168小时),超时将被删除。 log.retention.hours=168 #topic 的分区是以一堆 segment 文件存储的, #此参数控制日志文件中每个 segment 的大小,单位是字节,即默认为1G。 log.segment.bytes=1073741824 #周期性检查文件大小的时间,单位是毫秒。 #即定期检查 segment 文件有没有达到1G(上一个参数) log.retention.check.interval.ms=300000 #zookeeper 的集群地址,可以是多个,多个地址之间用逗号隔开, #broker需要使用 zookeeper 保存 meta 数据。 zookeeper.connect=localhost:2181 #zookeeper 的连接超时时间 zookeeper.connection.timeout.ms=6000 #在执行第一次再平衡之前,group 协调员将等待更多消费者加入 group 的时间。 #延迟时间越长意味着重新平衡的可能性越小,但是等待处理开始的时间增加。 group.initial.rebalance.delay.ms=0
来源:https://www.cnblogs.com/sunshineliulu/p/12012000.html