`
邢邢色色
  • 浏览: 229904 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Kafka学习之producer配置(0.8.1版)

阅读更多

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的机器挂了的话会丢失还没有发送的数据。异步意味着消息将会在本地buffer,并适时批量发送,推荐使用。

 

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类。

0
0
分享到:
评论
3 楼 NASa_CJ 2016-11-17  
“合法的值为sync,表示异步发送;sync表示同步发送。”这句话你自己读读!
2 楼 邢邢色色 2014-07-04  
asialee 写道
近来我也在研究kafak,lz写的比较详细,佩服,应该是在什么地方翻译的吧,能不能分享下你的资料?


都是官方文档里的东东啊,也没其他的地方了,再加上一些自己的理解吧。
1 楼 asialee 2014-07-04  
近来我也在研究kafak,lz写的比较详细,佩服,应该是在什么地方翻译的吧,能不能分享下你的资料?

相关推荐

    kafka中文文档producer配置参数

    在Kafka中,Producer(生产者)负责将数据流发送到Kafka集群中。生产者的配置参数非常关键,因为它们会直接影响到生产者的行为和性能。以下是根据提供的文件内容整理的Kafka生产者配置参数的知识点: 1. bootstrap....

    pentaho-kafka-producer.zip

    在配置Kafka Producer插件时,需要注意以下几点: - **Bootstrap Servers**:这是Kafka集群的入口点,你需要提供至少一个Kafka Broker的IP地址和端口。 - **Topic**:定义你要发送数据的目标主题。确保该主题在...

    kafka_2.9.2-0.8.1

    2. **生产者与消费者**:生产者(Producer)负责向 Kafka 发送消息,而消费者(Consumer)则负责读取和处理这些消息。消费者通过消费组(Consumer Group)进行消息的并行处理,确保消息被正确地分发和处理。 3. **...

    kafka0.8.1

    在集群管理方面,Kafka 0.8.1 提供了 ZooKeeper 集群协调,使得节点的添加、删除和配置更新变得更加平滑。ZooKeeper 负责存储和管理 Kafka 的元数据,帮助维持集群的稳定运行。 此外,这个版本还优化了性能。Kafka ...

    Kafka 配置用户名密码例子

    在提供的压缩包文件`kafka_2.12-1.1.1`中,包含了Kafka的二进制发行版,你可以根据上述步骤配置并运行测试。注意,实际部署时,你需要替换配置中的用户名和密码,并考虑使用不同的端口和IP地址,以适应你的网络环境...

    kafka学习之路

    ### Kafka学习之路——详解Kafka原理与架构 #### 一、Kafka简介 Kafka是一款由LinkedIn开发并开源的消息队列系统,它主要用于处理实时数据流,并能够支持在线和离线的日志处理需求。Kafka的基本特性包括高吞吐量、...

    Spring 集成 Kafka的配置文件及代码讲解

    Kafka是一个高吞吐量、分布式的发布/订阅消息系统,而Spring框架是Java开发中最广泛使用的应用框架之一。通过将两者结合,我们可以构建高效、可扩展的微服务架构。 首先,我们需要在Spring项目中引入Kafka相关的...

    Kafka Producer机制优化-提高发送消息可靠性

    ### Kafka Producer机制优化—提高发送消息可靠性 #### 一、Kafka Producer机制及问题背景 在Kafka消息系统中,消息是由Producer生产并通过Broker(消息中介节点)进行存储与转发的。Broker负责处理消息的存储,并...

    kafka_producer.zip

    在这个项目中,`kafka_producer.zip`包含了实现这一功能的所有必要文件:一个配置文件`config.conf`和一个Python脚本`producer.py`。 首先,让我们了解`config.conf`文件的作用。这个配置文件通常包含Kafka生产者...

    kafka配置调优实践

    Kafka 配置调优实践 Kafka 配置调优实践是指通过调整 Kafka 集群的参数配置来提高其吞吐性能。下面是 Kafka 配置调优实践的知识点总结: 一、存储优化 * 数据目录优先存储到 XFS 文件系统或者 EXT4,避免使用 EXT...

    kettle kafka 消息生产插件

    在文件“pentaho-kafka-producer”中,我们可以预期找到与这个插件相关的源代码、配置文件、文档或其他支持资源。这些资源可能包括: 1. **源代码**:可能包含Java或Groovy代码,实现了Kettle插件的逻辑,包括连接...

    CDH平台kafka配置文件以及相关操作

    CDH大数据平台kafka配置文件以及相关操作

    Canal 监听 Mysql 自动写入 Kafka 并消费 配置 Windows 版

    在Canal中,我们需要配置Kafka的生产者参数,这通常在`canal.properties`中的`canal.kafka.producer.bootstrap.servers`和`canal.kafka.topic`等字段进行设置,确保Canal知道如何将数据发布到Kafka。一旦配置完成,...

    jemter-kafka连接器

    `config1.json`可能是用于配置连接器到Kafka集群的参数,如bootstrap servers、主题名、序列化方式等。确保正确配置这些参数是连接成功的关键。 在实际测试过程中,你可能会使用`src`目录下的源代码来定制特定的...

    Kafka、Zookeeper集群配置

    然后,可以使用`kafka-console-producer.sh`和`kafka-console-consumer.sh`脚本测试生产者和消费者的功能。 **4. 高可用与故障转移** 在Kafka中,为了提高服务的可用性和容错性,我们通常会配置多个副本。当一个...

    kafka_2.11安装包和配置文件

    **Kafka 2.11 安装与配置详解** Kafka是一款开源的分布式流处理平台,由LinkedIn开发并贡献给Apache基金会。它主要用于构建实时数据管道和流应用,能够高效地处理大量实时数据。本篇文章将围绕Kafka 2.11版本的安装...

    kafka学习资料.zip

    - 学习文档将详细介绍Kafka的架构、配置、操作以及最佳实践,帮助初学者快速上手。 - 心得总结通常包含了实际使用中的经验教训和技巧,对于提升Kafka应用水平非常有价值。 6. **安装与配置** - 安装包提供了...

    《Kafka单机部署》配置文件

    可以通过`producer.properties`文件配置生产者的行为,比如`bootstrap.servers`(连接到的Kafka集群地址)、`key.serializer`和`value.serializer`(键值序列化方式)。 5. **消费者配置**:消费者使用`consumer....

    第12单元 Kafka producer拦截器与Kafka Streams1

    "Kafka Producer拦截器与Kafka Streams" Kafka Producer拦截器是Kafka 0.10版本引入的主要用于实现clients端的定制化控制逻辑。 Producer拦截器使得用户在消息发送前以及producer回调逻辑前有机会对消息做一些定制...

Global site tag (gtag.js) - Google Analytics