名称 描述 类型 默认值
bootstrap.servers kafka集群地址,ip+端口,以逗号隔开。不管这边配置的是什么服务器,客户端会使用所有的服务器。配置的列表只会影响初始发现所有主机。配置的格式应该是:ip:port,ip:port,因为配置的内容只是用于服务集群的初始发现(集群地址可能会变化),配置可以不包含所有的服务器(你可能需要配置多于一个,防止某个服务挂掉) list
key.serializer 实现Serializer接口的序列化类键 class
value.serializer 实现Serializer接口的序列化类值 class
acks 生产者认为一个请求完成,所需要kafka集群主服务的应答次数。这个配置控制已发送消息的持久性。下面是这个配置可能的值。acks=0:如果设置为0,生产者不会等待kafka的响应。消息会被立刻加到发送缓冲通道中,并且认为已经发送成功。这种情况下,不能保证kafka接收到了这条消息,retries配置不会生效,每条消息的偏移量都是1;acks=1:这个配置意味着kafka会把这条消息写到本地日志文件中,但是不会等待集群中其他机器的成功响应。这种情况下,在写入日志成功后,集群主机器挂掉,同时从机器还没来得及写的话,消息就会丢失掉。acks=all:这个配置意味着leader会等待所有的follower同步完成。这个确保消息不会丢失,除非kafka集群中所有机器挂掉。这是最强的可用性保证。 string 1
buffer.memory 生产者等待发送到kafka的消息队列占用内容的大小。如果消息发送的速度比传输给kafka快,生产者会在抛出异常后,阻塞max.block.ms的时间。这个配置应该大体与生产者用到的内存差不多,但不全是,因为生产者使用的内存不全部用于消息队列。还有些内存会被用于压缩和保持长连接。 long 33554432
compression.type 生产者的数据压缩类型。默认是不压缩(no compression)。有效的配置可以是none,gzip,snappy或lz4。压缩是数据的批量压缩,所以批量的效果也就是压缩的比例(压缩的比例越好,数据量越小)。 string none
retries 配置为大于0的值的话,客户端会在消息发送失败时重新发送。重试等同于在发送有异常时重新发送消息。如果不把max.in.flight.requests.per.connection设为1,重试可能会改变消息的顺序。两条消息同时发送到同一个分区,第一条失败了,并在第二条发送成功后重新发送,那么第二条消息可能在第一条消息前到达。 int 0
ssl.key.password 存在文件中的私钥密码,对于生产者来说可选。 password null
ssl.keystore.location 存储私钥的文件地址,可以用于不同客户端的认证。 string null
ssl.keystore.password 私钥文件存储密码。只有当ssl.keystore.location配置了,才有用。 password null
ssl.truststore.location 信任存储文件路径。 string null
ssl.truststore.password 信任存储文件密码 password null
batch.size 当多条消息需要发送到同一个分区时,生产者会尝试合并网络请求。这会提高client和生产者的效率。如果消息体大于这个配置,生产者不会尝试发送消息。发送给kafka的消息包含不同的批次,每批发送给一个分区。批次大小太小的话可能会降低吞吐量。如果设为0,会禁用批处理功能。如果批次设置很大,可能会有些浪费内存,因为我们会预留这部分内存用于额外的消息。 int 16384
client.id 发送请求给kafka时带上的生产者标识。目的是为了在ip+端口之外,通过逻辑上的应用名称跟踪请求,以便记录在kafka日志中。 string ""
connections.max.idle.ms 在配置项的时间之后,关闭空闲的链接 long 540000
linger.ms 消息延迟发送的毫秒数,目的是为了等待多个消息,在同一批次发送,减少网络请求。 long 0
max.block.ms 这个配置控制KafkaProducer.send()和KafkaProducer.partitionsFor()的阻塞时间,当缓冲区空间不够或者源数据丢失时阻塞 int 60000
max.request.size 生产者一次请求的最大字节数,这也是一次消息体的最大值。注意到kafka集群有自己的消息限制,可能与这个值不一样。这个配置限制的是生产者一次发送消息的大小,为的是避免发送大的数据量。 int 1048576
partitioner.class 实现Partitioner接口的分区类 class class org.apache.kafka.clients.producer.internals.DefaultPartitioner
receive.buffer.bytes socket接收缓存空间的大小,读数据时用 int 32768
request.timeout.ms 生产者发送消息后等待响应的最大时间,如果在配置时间内没有得到响应,生产者会重试。 int 30000
timeout.ms kafka集群的leader等待follower响应的超时时间。 int 30000

【Kafka】Producer配置的更多相关文章

  1. 【转】 详解Kafka生产者Producer配置

    粘贴一下这个配置,与我自己的程序做对比,看看能不能完善我的异步带代码:   -----------------------------------------    详解Kafka生产者Produce ...

  2. 【原创】Kafka producer原理 (Scala版同步producer)

    本文分析的Kafka代码为kafka-0.8.2.1.另外,由于Kafka目前提供了两套Producer代码,一套是Scala版的旧版本:一套是Java版的新版本.虽然Kafka社区极力推荐大家使用J ...

  3. 【转】Kafka producer原理 (Scala版同步producer)

    转载自:http://www.cnblogs.com/huxi2b/p/4583249.html     供参考 本文分析的Kafka代码为kafka-0.8.2.1.另外,由于Kafka目前提供了两 ...

  4. Kafka Producer相关代码分析【转】

    来源:https://www.zybuluo.com/jewes/note/63925 @jewes 2015-01-17 20:36 字数 1967 阅读 1093 Kafka Producer相关 ...

  5. kafka主要配置

    Kafka为broker,producer和consumer提供了很多的配置参数. 了解并理解这些配置参数对于我们使用kafka是非常重要的. 官网配置地址: Configuration 每个kafk ...

  6. kafka producer生产数据到kafka异常:Got error produce response with correlation id 16 on topic-partition...Error: NETWORK_EXCEPTION

      kafka producer生产数据到kafka异常:Got error produce response with correlation id 16 on topic-partition... ...

  7. Spring Kafka中关于Kafka的配置参数

    #################consumer的配置参数(开始)################# #如果'enable.auto.commit'为true,则消费者偏移自动提交给Kafka的频率 ...

  8. 关于高并发下kafka producer send异步发送耗时问题的分析

    最近开发网关服务的过程当中,需要用到kafka转发消息与保存日志,在进行压测的过程中由于是多线程并发操作kafka producer 进行异步send,发现send耗时有时会达到几十毫秒的阻塞,很大程 ...

  9. kafka producer实例

    1. 定义要发送的消息User POJO package lenmom.kafkaproducer; public class User { public String name; public in ...

  10. Kafka producer介绍

    Kafka 0.9版本正式使用Java版本的producer替换了原Scala版本的producer.本文着重讨论新版本producer的设计原理以及基本的使用方法. 新版本Producer 首先明确 ...

随机推荐

  1. 让FIREDAC记录数据库的异常日志

    默认FIREDAC不会记录数据库的异常. 比如典型的,提交的时候,非空字段没有给值. 某些人还以为FIREDAC不能捕获数据库的异常,其实FIREDAC是可以捕获并处理数据库的异常事件的. 方法异常简 ...

  2. cesium编程中级(一)添加示例到Sandcastle

    cesium编程中级(一)添加示例到Sandcastle 添加示例到Sandcastle在cesium编程入门(七)3D Tiles,模型旋转中提到过,这里是一份完整的说明 创建例子 开启node服务 ...

  3. JavaSe 之三目运算符应用

    刚学习Java基本知识,对于三目运算符的应用,尝试了做出求某年份中月份的天数. /*自己随意定义一个年份和月份,使用三目运算符 取得当前月份具体天数.并且输出在控制台. 注意哦:大月31天,小月30天 ...

  4. 函数IsValid()

    功能:检查对象变量是否已经实例化,即实例变量的值是否是个有效的对象句柄. 语法:IsValid(objectname) 参数:objectname:要检查的对象名. 返回值:Boolean.如果指定对 ...

  5. ClamAV资料链接

    1.http://wiki.ubuntu.org.cn/index.php?title=ClamAV&variant=zh-cn Ubuntu的wiki下对ClamAV的大致介绍,包括使用. ...

  6. CF553C Love Triangles

    题目链接 题意:给定n个点,给出一些边权为0/1的边,构造完全图,满足对于任何一个三元环,三条边权和为奇.求符合条件的完全图数量,对\(1e9+7\)取模. 分析:其实原题给定的边权是love/hat ...

  7. Java50道经典习题-程序17 猴子吃桃问题

    题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只 ...

  8. 2018年秋PTA乙级回顾

    距离上次我一个人参加PAT考试已经过去快一个学期了,想想上次自己也是搞笑,自己一个人被这个书包就去了ZZ,人生地不熟的,乘坐公交车还坐反了.考完试因为不知道要等到考试结束就可以领取成绩证书,自己连那张 ...

  9. 指针版P3690 【模板】Link Cut Tree (动态树)

    题面 传送门 题解 鉴于数组版实在是太慢我用指针版重新写了一遍 代码基本是借鉴了lxl某道关于\(LCT\)的题 //minamoto #include<bits/stdc++.h> #d ...

  10. Qt5学习笔记(消息过滤器)

    T06EventFilter.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += widgets gui MyWidget.h #i ...