kafka主要配置
Kafka为broker,producer和consumer提供了很多的配置参数。 了解并理解这些配置参数对于我们使用kafka是非常重要的。
官网配置地址: Configuration
每个kafka broker中配置文件server.properties默认必须配置的属性如下:
broker.id=0
port=9092
num.network.threads=2
num.io.threads=8
socket.send.buffer.bytes=1048576
socket.receive.buffer.bytes=1048576
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=2
log.retention.hours=168
log.segment.bytes=536870912
log.retention.check.interval.ms=60000
log.cleaner.enable=false
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=1000000
下表列举了部分重要的配置参数,更多配置请参考官网
broker配置参数
| 参数 | 默认值 | 描述 |
| broker.id | -1 | 每一个boker都有一个唯一的id作为它们的名字。当该服务器的IP地址发生改变时,broker.id没有变化,则不会影响consumers的消息情况 |
| port | 9092 | broker server服务端口 |
| host.name | "" | broker的主机地址,若是设置了,那么会绑定到这个地址上,若是没有,会绑定到所有的接口上,并将其中之一发送到ZK |
| log.dirs | /tmp/kafka-logs | kafka数据的存放地址,多个地址的话用逗号分割,多个目录分布在不同磁盘上可以提高读写性能 /data/kafka-logs-1,/data/kafka-logs-2 |
| message.max.bytes | 1000012 | 表示消息体的最大大小,单位是字节 |
| num.network.threads | 3 | broker处理消息的最大线程数,一般情况下数量为cpu核数 |
| num.io.threads | 8 | 处理IO的线程数 |
| log.flush.interval.messages | Long.MaxValue | 在数据被写入到硬盘和消费者可用前最大累积的消息的数量 |
| log.flush.interval.ms | Long.MaxValue | 在数据被写入到硬盘前的最大时间 |
| log.flush.scheduler.interval.ms | Long.MaxValue | 检查数据是否要写入到硬盘的时间间隔。 |
| log.retention.hours | 168 (24*7) | 控制一个log保留多长个小时 |
| log.retention.bytes | -1 | 控制log文件最大尺寸 |
| log.cleaner.enable | false | 是否log cleaning |
| log.cleanup.policy | delete | delete还是compat. |
| log.segment.bytes | 1073741824 | 单一的log segment文件大小 |
| log.roll.hours | 168 | 开始一个新的log文件片段的最大时间 |
| background.threads | 10 | 后台线程序 |
| num.partitions | 1 | 默认分区数 |
| socket.send.buffer.bytes | 102400 | socket SO_SNDBUFF参数 |
| socket.receive.buffer.bytes | 102400 | socket SO_RCVBUFF参数 |
| zookeeper.connect | 指定zookeeper连接字符串, 格式如hostname:port/chroot。chroot是一个namespace | |
| zookeeper.connection.timeout.ms | 6000 | 指定客户端连接zookeeper的最大超时时间 |
| zookeeper.session.timeout.ms | 6000 | 连接zk的session超时时间 |
| zookeeper.sync.time.ms | 2000 | zk follower落后于zk leader的最长时间 |
high-level consumer的配置参数
| 参数 | 默认值 | 描述 |
| groupid | groupid | 一个字符串用来指示一组consumer所在的组 |
| socket.timeout.ms | 30000 | socket超时时间 |
| socket.buffersize | 64*1024 | socket receive buffer |
| fetch.size | 300 * 1024 | 控制在一个请求中获取的消息的字节数。 这个参数在0.8.x中由fetch.message.max.bytes,fetch.min.bytes取代 |
| backoff.increment.ms | 1000 | 这个参数避免在没有新数据的情况下重复频繁的拉数据。 如果拉到空数据,则多推后这个时间 |
| queued.max.message.chunks | 2 | high level consumer内部缓存拉回来的消息到一个队列中。 这个值控制这个队列的大小 |
| auto.commit.enable | true | 如果true,consumer定期地往zookeeper写入每个分区的offset |
| auto.commit.interval.ms | 10000 | 往zookeeper上写offset的频率 |
| auto.offset.reset | largest | 如果offset出了返回,则 smallest: 自动设置reset到最小的offset. largest : 自动设置offset到最大的offset. 其它值不允许,会抛出异常. |
| consumer.timeout.ms | -1 | 默认-1,consumer在没有新消息时无限期的block。如果设置一个正值, 一个超时异常会抛出 |
| rebalance.retries.max | 4 | rebalance时的最大尝试次数 |
producer的配置参数
| 参数 | 默认值 | 描述 |
| producer.type | sync | 指定消息发送是同步还是异步。异步asyc成批发送用kafka.producer.AyncProducer, 同步sync用kafka.producer.SyncProducer |
| metadata.broker.list | boker list | 使用这个参数传入boker和分区的静态信息,如host1:port1,host2:port2, 这个可以是全部boker的一部分 |
| compression.codec | NoCompressionCodec | 消息压缩,默认不压缩 |
| compressed.topics | null | 在设置了压缩的情况下,可以指定特定的topic压缩,未指定则全部压缩 |
| message.send.max.retries | 3 | 消息发送最大尝试次数 |
| retry.backoff.ms | 300 | 每次尝试增加的额外的间隔时间 |
| topic.metadata.refresh.interval.ms | 600000 |
定期的获取元数据的时间。当分区丢失,leader不可用时producer也会主动获取元数据,如果为0,则每次发送完消息就获取元数据, 不推荐。如果为负值,则只有在失败的情况下获取元数据。 |
| queue.buffering.max.ms | 5000 | 在producer queue的缓存的数据最大时间,仅仅for asyc |
| queue.buffering.max.message | 10000 | producer 缓存的消息的最大数量,仅仅for asyc |
| queue.enqueue.timeout.ms | -1 | 0当queue满时丢掉,负值是queue满时block,正值是queue满时block相应的时间,仅仅for asyc |
| batch.num.messages | 200 | 一批消息的数量,仅仅for asyc |
| request.required.acks | 0 | 0表示producer无需等待leader的确认,1代表需要leader确认写入它的本地log并立即确认,-1代表所有的备份都完成后确认。 仅仅for sync |
| request.timeout.ms | 10000 | 确认超时时间 |
kafka主要配置的更多相关文章
- Kafka 安装配置 windows 下
Kafka 安装配置 windows 下 标签(空格分隔): Kafka Kafka 内核部分需要安装jdk, zookeeper. 安装JDK 安装JDK就不需要讲解了,安装完配置下JAVA_HOM ...
- Kafka broker配置介绍 (四)
这部分内容对了解系统和提高软件性能都有很大的帮助,kafka官网上也给出了比较详细的配置详单,但是我们还是直接从代码来看broker到底有哪些配置需要我们去了解的,配置都有英文注释,所以每一部分是干什 ...
- kafka 相关配置
kafka主要配置包括三类:broker configuration,producer configuration and consumer configuration. Broker Config ...
- kafka 参数配置 1
kafka 参数配置 #参数配置 * broker.id : kafka 集群的唯一,标识每个broker * log.dirs : 指定kafka持久化消息的目录,可以设置多个目录,如:/home/ ...
- Storm Kafka与配置和代码集成
1.目标 - 风暴卡夫卡整合 在本Kafka教程中,我们将学习Storm Kafka Integration的概念.此外,我们将在此Kafka Storm集成教程中讨论Storm架构,Storm Cl ...
- Kafka动态配置实现原理解析
问题导读 Apache Kafka在全球各个领域各大公司获得广泛使用,得益于它强大的功能和不断完善的生态.其中Kafka动态配置是一个比较高频好用的功能,下面我们就来一探究竟. 动态配置是如何设计的? ...
- Spring Boot 自定义kafka 消费者配置 ContainerFactory最佳实践
Spring Boot 自定义kafka 消费者配置 ContainerFactory最佳实践 本篇博文主要提供一个在 SpringBoot 中自定义 kafka配置的实践,想象这样一个场景:你的系统 ...
- 一、kafka 安装配置
Kafka是什么 Kafka最初是由LinkedIn公司采用Scala语言开发的一个分布式.多分区.多副本且基于ZooKeeper协调的内部基础设置,现已捐献给Apache基金会.Kafka是一个流平 ...
- 3.kafka安装配置
kafka安装配置 ### 1.集群规划 hadoop102 hadoop103 hadoop104 zk zk zk kafka kafka kafka jar包下载 http://kafka.ap ...
- SpringCloudStream(RabbitMQ&Kafka)&Spring-Kafka配置使用
目录 是什么 解决问题 使用方式 创建生产者项目 pom yml 生产消息方法 接口 实现 创建消费者项目 pom yml 接收消息方法 重复消费 消费者yml 持久化 消费者负载个性配置(预拉取) ...
随机推荐
- web前端:js
内嵌样式<script></script> alert(“123”)弹出对话框 document.write(“test”) 引入方式 <title></ti ...
- C#使用Process类调用外部程序(转)
在程序开发中,一个程序经常需要去调用其他的程序,C#中Process类正好提供了这样的功能.它提供对本地和远程进程的访问并使您能够启动和停止本地系统进程.一.启动进程实例 Process myProc ...
- Android WebView和JavaScript交互
JavaScript在现在的网页设计中用得很多,Android 的WebView可以载入网页,WebView也设计了与JavaScript通信的桥梁.这篇主要介绍一下WebViewk控件如何和Java ...
- CentOS安装memcached及配置php的memcache扩展
遇到的问题: 这个问题主要是linux服务器安装memcached服务后,phpinfo信息没有memcache扩展,所以主要是给php安装memcache扩展,教程中是安装memcache扩展,我认 ...
- EF6.0+Mysql的问题
最近在项目中使用EF for Mysql的时候遇到一个问题 public OrderManage GetOrders(OrderSearchCriteria criteria) { using (va ...
- healthkit 记录每天用户的运动情况
//详细操作步骤 http://www.csdn.net/article/2015-01-23/2823686-healthkit-tutorial-with-swift //官方api https: ...
- 确认(confirm 消息对话框)
confirm 消息对话框通常用于允许用户做选择的动作(包括一个确定按钮和一个取消按钮). 语法: confirm(str) str:在消息对话框中要显示的文本 返回值: 当用户点击"确定& ...
- Servlet(三)
重定向 服务器向浏览器发送一个302状态码以及一个Location消息头(该消息头的值是一个地址,称之为重定向地址),浏览器收到后会立即向重定向的地址发出请求,使用相应对象的API方法实现(respo ...
- 使用soapUI代替WSDL2JAVA生成cxf HTTPS 客户端调用代码
如果直接用cxf下面的wsdl2java生成https服务调用代码,会报https证书的错误.在你不想导入证书的情况下,可以使用soapUI进行客户端代码的生成,步骤如下: 1.设置CXF,如下图: ...
- SGU 191.Exhibition(模拟)
时间限制:0.25s 空间限制:4M 题意: 有两个公司A.B,他们要展览物品,但是A公司的展柜要放B公司的物品,B公司的展柜要放A公司物品.最开始只有一个空柜台,从指定的一个公司开始,轮流进行操作, ...