转
http://damacheng009.iteye.com/blog/2087996
metadata.broker.list 默认值:无,必填
格式为host1:port1,host2:port2,这是一个broker列表,用于获得元数据(topics,partitions和replicas),建立起来的socket连接用于发送实际数据,这个列表可以是broker的一个子集,或者一个VIP,指向broker的一个子集。
request.required.acks 默认值:0
用来控制一个produce请求怎样才能算完成,准确的说,是有多少broker必须已经提交数据到log文件,并向leader发送ack,可以设置如下的值:
- 0,意味着producer永远不会等待一个来自broker的ack,这就是0.7版本的行为。这个选项提供了最低的延迟,但是持久化的保证是最弱的,当server挂掉的时候会丢失一些数据。
- 1,意味着在leader replica已经接收到数据后,producer会得到一个ack。这个选项提供了更好的持久性,因为在server确认请求成功处理后,client才会返回。如果刚写到leader上,还没来得及复制leader就挂了,那么消息才可能会丢失。
- -1,意味着在所有的ISR都接收到数据后,producer才得到一个ack。这个选项提供了最好的持久性,只要还有一个replica存活,那么数据就不会丢失。
request.timeout.ms 默认值:10000
请求超时时间。
producer.type 默认值:sync
决定消息是否应在一个后台线程异步发送。合法的值为sync,表示异步发送;sync表示同步发送。设置为async则允许批量发送请求,这回带来更高的吞吐量,但是client的机器挂了的话会丢失还没有发送的数据。
serializer.class 默认值:kafka.serializer.DefaultEncoder
The serializer class for messages. The default encoder takes a byte[] and returns the same byte[].
消息的序列化类,默认是的encoder处理一个byte[],返回一个byte[]。
key.serializer.class 默认值:无
The serializer class for keys (defaults to the same as for messages if nothing is given).
key的序列化类,默认跟消息的序列化类一样。
partitioner.class 默认值:kafka.producer.DefaultPartitioner
用来把消息分到各个partition中,默认行为是对key进行hash。
compression.codec 默认值:none
允许指定压缩codec来对消息进行压缩,合法的值为:none,gzip,snappy。
compressed.topics 默认值:null
允许你指定特定的topic对其进行压缩。如果compression codec设置了除NoCompressionCodec以外的值,那么仅会对本选项指定的topic进行压缩。如果compression codec为NoCompressionCodec,那么压缩就不会启用。
message.send.max.retries 默认值:3
如果producer发送消息失败了会自动重发,本选项指定了重发的次数。注意如果是非0值,那么可能会导致重复发送,就是说的确发送了消息,但是没有收到ack,那么就还会发一次。
retry.backoff.ms 默认值:100
在每次重发之前,producer会刷新相关的topic的元数据,来看看是否选出了一个新leader。由于选举leader会花一些时间,此选项指定了在刷新元数据前等待的时间。
topic.metadata.refresh.interval.ms 默认值:600 * 1000
当出现错误时(缺失partition,leader不可用等),producer通常会从broker拉取最新的topic的元数据。它也会每隔一段时间轮询(默认是每隔10分钟)。如果设置了一个负数,那么只有当发生错误时才会刷新元数据,当然不推荐这样做。有一个重要的提示:只有在消息被发送后才会刷新,所以如果producer没有发送一个消息的话,则元数据永远不会被刷新。
queue.buffering.max.ms 默认值:5000
当使用异步模式时,缓冲数据的最大时间。例如设为100的话,会每隔100毫秒把所有的消息批量发送。这会提高吞吐量,但是会增加消息的到达延时。
queue.buffering.max.messages 默认值:10000
在异步模式下,producer端允许buffer的最大消息数量,如果producer无法尽快将消息发送给broker,从而导致消息在producer端大量沉积,如果消息的条数达到此配置值,将会导致producer端阻塞或者消息被抛弃。
queue.enqueue.timeout.ms 默认值:-1
当消息在producer端沉积的条数达到 queue.buffering.max.meesages 时, 阻塞一定时间后,队列仍然没有enqueue(producer仍然没有发送出任何消息) 。 此时producer可以继续阻塞或者将消息抛弃,此timeout值用于控制 阻塞 的时间,如果值为-1 则 无阻塞超时限制,消息不会被抛弃;如果值为0 则
立即清空队列,消息被抛弃。
batch.num.messages 默认值:200
在异步模式下,一个batch发送的消息数量。producer会等待直到要发送的消息数量达到这个值,之后才会发送。但如果消息数量不够,达到queue.buffer.max.ms时也会直接发送。
send.buffer.bytes 默认值:100 * 1024
socket的发送缓存大小。
client.id 默认值:""
这是用户可自定义的client id,附加在每一条消息上来帮助跟踪。
更多配置细节可以参考 kafka.producer.ProducerConfig
类。
相关推荐
Kafka参数配置详解 Kafka是一种流行的分布式流处理平台,用于构建实时数据管道和事件驱动的架构。为了确保Kafka集群的稳定运行和高性能,需要正确地配置Kafka参数。本文将详细介绍Kafka的参数配置,包括系统参数、...
学习和理解 Kafka 的参数配置,对于优化 Kafka 集群的性能和稳定性至关重要。例如,调整消息批次大小、保留策略、分区数量、副本因子等参数,都可以直接影响到 Kafka 系统的性能和可靠性。在实际部署和使用 Kafka 时...
Kafka 配置调优实践是指通过调整 Kafka 集群的参数配置来提高其吞吐性能。下面是 Kafka 配置调优实践的知识点总结: 一、存储优化 * 数据目录优先存储到 XFS 文件系统或者 EXT4,避免使用 EXT3。 * 在挂载块设备时...
本篇将深入探讨Kafka配置参数,帮助你理解和优化Kafka集群的运行。 1. **broker.id**: 这个参数是每个Kafka broker的唯一标识,它必须在整个集群中是唯一的。值可以是任意整数,通常从0开始。 2. **zookeeper....
在实际使用过程中,需要对Kafka的配置参数进行详细理解,以便根据具体业务需求调整参数,优化性能。以下对Kafka主要配置参数进行详细解读: 1. broker.id:这是Kafka broker的唯一标识符,它是一个整数,用于唯一...
kafka配置文件zookeeper参数.md
安装完成后,配置 `kafkatool.properties` 文件,设置 Kafka 集群的地址、端口、安全协议等相关参数。 **3. 主题管理** - **创建主题**: 使用 `create-topic` 命令可以快速创建一个新的 Kafka 主题,支持设置分区...
2. **主题管理**:通过该工具,用户可以创建、删除、修改和查看Kafka主题,包括设置分区数量、副本数、配置参数等。同时,还可以对主题进行数据导入导出,方便数据迁移或备份。 3. **消息查看**:Kafka Tool支持...
kafka生产者参数配置使用于各种编程语言重要参数已标明kafka生产者参数配置使用于各种编程语言重要参数已标明
### Kafka参数详解 #### 一、系统配置(System Configuration) **1.1 broker.id** - **描述**: 设置Broker在集群中的唯一标识符。该值必须是一个正整数,并且在整个集群中是唯一的。 - **示例**: `broker.id=0` **...
2. **性能优化**:根据实际需求调整`KafkaSpout`的批处理大小、重试间隔和消费者组大小等参数,以优化性能。 3. **数据一致性**:理解并正确处理Kafka的分区和offset管理,确保数据处理的准确性和顺序性。 4. **监控...
3. 修改`server.properties`配置文件,设置broker ID、zookeeper连接等参数。 4. 启动Zookeeper服务。 5. 启动Kafka服务。 6. 创建主题(topics)并测试生产者和消费者。 使用Kafka时,可以通过命令行工具进行操作...
首次运行时,用户可能需要配置连接到Kafka集群的参数,如Bootstrap Servers、Zookeeper地址等。一旦设置完毕,就能开始探索和管理Kafka集群了。 **总结** Kafka Tool作为一款强大的Kafka管理工具,对于Mac用户来说...
kafka原理优化及参数。 可恢复性 系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。 顺序保证 在...
在使用Kafka Tool时,注意要根据实际的Kafka集群配置进行正确的连接设置,例如设置正确的Zookeeper地址、端口和安全参数。此外,由于Kafka Tool.app是应用程序包,解压后可以直接在Mac上运行,无需额外安装步骤,这...
以下是根据提供的文件内容整理的Kafka生产者配置参数的知识点: 1. bootstrap.servers - 用途:配置生产者连接到Kafka集群的初始主机列表。 - 描述:这个列表只需包含一个或多个服务器,用于初始化连接和发现整个...
11. **性能优化**:Kafka可以通过调整各种参数,如缓冲区大小、批量大小、并行度等,来优化性能。同时,合理规划主题和分区的数量,以及消费者组的大小,也能提高整体效率。 12. **安全与监控**:Kafka支持SSL/TLS...
使用emq_plugin_kafka插件,需要在EMQ X Broker的配置文件中启用该插件,并设置相关的Kafka服务器地址、端口、主题等参数。部署后,所有通过EMQ X Broker发布的消息都可以自动转发到Kafka。 7. **应用场景**: - ...