KafkaProducer中有三个参数是必填的:

bootstrap.servers: 指定生产者客户端连接kafka集群所需的broker地址列表,格式为host1:port1,host2:port2,可以设置一个或多个。这里并非需要所有的broker地址,因为生产者会从给定的broker里寻找其它的broker。

key.serializer和value.serializer:broker接收消息必须以字节数组byte[]形式存在,KafkaProducer<K,V>和ProducerRecord<K,V>中的泛型就是key和value的类型。key.serializer和value.serializer分别用来指定key和value序列化操作的序列化器,无默认值。类的全限定名。

非必填参数

client.id:这个参数用来设定kafkaProducer对应的客户端id,默认值为“”,如果不设置,会自动生成一个非空字符串,内容形式如:“producer-1”,“producer-2”…

retries:配置生产者重试次数,对于可重试异常,那么只要在规定的次数内自行恢复了,就不会抛出异常,默认是0。

retry.backoff.ms用来设定两次重试之间的时间间隔,默认值100。

partitioner.class:显示配置使用哪个分区器。

interceptor.classes:指定自定义拦截器,多个传List集合。

buffer.memory:生产者客户端RecordAccumulator缓存大小,默认值为33554432B,即32M。

batch.size:ProducerBatch可以复用内存区域的大小

max.block.ms:最大阻塞时间,RecordAccumulator缓存不足时或者没有可用的元数据时,KafkaProducer的send()方法调用要么被阻塞,要么抛出异常,此参数的默认值为60000,即60s。

metadata.max.age.ms:当客户端超过这个时间间隔时就会更新元数据信息默认值300000,即5分钟。元数据指集群中有哪些主题,主题有哪些分区,每个分区leader副本在哪个节点上,follower副本在哪个节点上,哪些副本在AR,ISR等集合中,集群中有哪些节点等等。

acks:用来指定必须要多少个副本收到这条消息,之后生产者才会认为这条消息成功写入。acks是生产者客户端中一个非常重要的参数,它涉及消息的可靠性和吞吐量之间的权衡。acks参数有三种类型的值:字符串类型,不是整型。

​ 1:只要分区的leader副本写入成功,生产者就会收到来自服务端的成功响应。如果再被其它follower副本拉取前leader副本崩溃,那么此时消息还是会丢失。

​ 0:生产者发送消息之后不需要等待任何服务端的响应。如果在消息发送到写入kafka的过程中出现了某些异常,导致kafka并没有收到这条消息,那么生产者也无从得知,消息会丢失。

​ -1或者all:生产者发送消息之后,需要等待ISR中所有副本成功写入消息之后才能收到来自服务端的成功响应。

max.request.size:用来限制生产者客户端能发送的消息的最大值,默认值为1048576B,即1MB。这个参数涉及到其它参数的联动,比如broker端的message.max.bytes参数。对kafka没有足够把控的时候不要更改此参数。

compression.type:指定消息的压缩方式,默认值为"none",可以配置为"gzip",“snappy”和“lz4”。

connections.max.idle.ms:用来指定多久之后关闭闲置的连接,默认值540000(ms),即9min

linger.ms:生产者发送ProducerBatch之前等待更多消息(ProducerRecoder)加入ProducerBatch的时间,默认值为0。生产者客户端会在ProducerBatch被填满或者等待时间超过linger.ms时发送出去。增大这个参数的值会增加消息的延迟,但同时会提高吞吐量。

receive.buffer.bytes:用来设置socket接收缓冲区的大小,默认值为32768(B),即32KB,如果设置为-1,则使用操作系统的默认值。

send.buffer.bytes:用来设置socket发送缓冲区的大小,默认值为131072(B),即128KB,如果设置为-1,则使用操作系统默认值。

request.timeout.ms:配置Producer等待请求响应的最长时间,默认值为30000(ms),请求超时之后可以进行重试。注意这个参数需要比broker端参数replica.lag.time.max.ms的值要大,这样可以减少因客户端重试而引起的消息重复的概率。

enable.idempotence:是否开启幂等性功能,默认值false

max.in.flight.requests.per.connection:限制每个连接,也就是客户端与Node之间的连接最多缓存请求数,默认值5

transactional.id:设置事物id,必须唯一,默认值null

实时内容请关注微信公众号,公众号与博客同时更新:程序员星星

kafka生产者实例配置参数相关推荐

  1. 【转】RocketMQ的一些特性(生产者消费者配置参数的含义)

    一 nameserver 相对来说,nameserver的稳定性非常高.原因有二: 1 nameserver互相独立,彼此没有通信关系,单台nameserver挂掉,不影响其他nameserver,即 ...

  2. 【Kafka】Kafka生产者producer相关参数详解batch.size linger.ms 等参数

    1.概述 生产环境中使用Kafka,参数调优非常重要,而Kafka参数众多,我们的java的Configuration代码中,经常设置的参数如下: Properties props = new Pro ...

  3. 四十五、Kafka生产者(Producer)API介绍

    前几篇文章我们主要介绍了一些理论上的知识,下面我们来实操一下,本文主要讲解Kafka生产者的API.关注专栏<破茧成蝶--大数据篇>,查看更多相关的内容~ 目录 一.Kafka的消息发送流 ...

  4. kafka生产者开发方式

    [README] 本文记录了 kafka生产者开发方式: [1]生产者概览 [1.1]kafka发送消息过程 [1.2]创建kafka生产者 1)创建kafka生产者, 有3个必选属性: bootst ...

  5. Kafka(四)- Kafka 生产者

    文章目录 一.生产者消息发送流程 1. 发送流程 2. 生产者重要参数列表 二.异步发送 API 1. 普通异步发送 2. 带回调函数的异步发送 3. 同步发送 三.生产者分区 1. 分区好处 2. ...

  6. Kafka(生产者)

    Kafka 1.概述 1.1 消息队列 1.1.1 传统消息队列的应用场景 1.1.2 消息队列的两种模式 1.2 kafka基础结构 2.kafka的快速入门 2.1 集群部署 2.1.1 安装ja ...

  7. kafka生产者的发送消息的流程以及代码案例

    一 kafka发送消息流程 1.1 发送流程原理 kafka在发送消息的过程中,主要涉及两个线程main 线程和 Sender 线程. 在 main 线程 中创建了一个双端队列 RecordAccum ...

  8. Kafka生产者分区

    生产者分区 分区的原因 (1)便于合理使用存储资源,每个Patition在一个Broker上存储,可以把海量的数据按照分区切割成一块一块数据存储在多台Broker上.合理控制分区的任务,可以实现负载均 ...

  9. Kafka生产者——消息发送流程,同步、异步发送API

    生产者消息发送流程 发送原理 Kafka的Producer发送消息采用的是异步发送的方式. 在消息发送的过程中,涉及到了两个线程:main线程和Sender线程,以及一个线程共享变量:RecordAc ...

  10. java客户端作为kafka生产者测试

    [README] 1.本文主要对 java客户端作为kafka 生产者进行测试, 消费者由 centos的kafka命令行线程扮演: 2.消息发送: kafka的生产者采用异步发送消息的方式,在消息发 ...

最新文章

  1. Git 远程操作详解
  2. 贝叶斯机器学习:经典模型与代码实现
  3. Java 建模: 子整体软件开发,第二部分
  4. endnote如何导入txt文件_python如何处理txt及excel文件
  5. 客户关系管理系统中对客户及相关数据的导入导出分析处理
  6. 关于UIScrollViewDelegate协议中每个回调函数的意义及执行
  7. C语言 · 进制转换
  8. windows server 2008 web服务器搭建
  9. 在python中、int表示的数据类型是_python--002--数据类型(int、str)
  10. 20190927CF训练
  11. php怎么求最小公倍数,用PHP实现最小公倍数
  12. 第112章 Caché 函数大全 $ZPOSITION 函数
  13. rd授权管理器不显示服务器,2008 r2 找不到RD授权管理器
  14. 小峰峰的pat甲级刷题记录1020
  15. lib 文件(基础)
  16. Python-import导入上级目录文件
  17. 卷积神经网络之优化参数(剪子包袱锤)
  18. 计算机缺少d3dx9_42.dll,我家电脑里缺少d3dx9_42.dll怎么处理?
  19. ZZULI—刷题之路
  20. Windows10修改用户名、密码

热门文章

  1. 华硕重装后进入bios_华硕台式机重装系统win10按哪个键进入bios设置
  2. Python爬虫开发学习全教程第二版,爆肝十万字【建议收藏】
  3. ENVI图像处理(6):NDVI和植被指数
  4. mac datagrip如何建立本地链接
  5. 我家淇淇-学习穿衣服
  6. 单变量微积分笔记28——不定式和洛必达法则
  7. FTP服务简介与配置
  8. A*算法最合理的数据结构
  9. 涂抹mysql 完整_涂抹MYSQL-跟着三思一步一步学MySQL
  10. php画图取色,图片取色,涂抹代码,Python交流,技术交流区,鱼C论坛 - Powered by Discuz!...