kafka生产者实例配置参数
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生产者实例配置参数相关推荐
- 【转】RocketMQ的一些特性(生产者消费者配置参数的含义)
一 nameserver 相对来说,nameserver的稳定性非常高.原因有二: 1 nameserver互相独立,彼此没有通信关系,单台nameserver挂掉,不影响其他nameserver,即 ...
- 【Kafka】Kafka生产者producer相关参数详解batch.size linger.ms 等参数
1.概述 生产环境中使用Kafka,参数调优非常重要,而Kafka参数众多,我们的java的Configuration代码中,经常设置的参数如下: Properties props = new Pro ...
- 四十五、Kafka生产者(Producer)API介绍
前几篇文章我们主要介绍了一些理论上的知识,下面我们来实操一下,本文主要讲解Kafka生产者的API.关注专栏<破茧成蝶--大数据篇>,查看更多相关的内容~ 目录 一.Kafka的消息发送流 ...
- kafka生产者开发方式
[README] 本文记录了 kafka生产者开发方式: [1]生产者概览 [1.1]kafka发送消息过程 [1.2]创建kafka生产者 1)创建kafka生产者, 有3个必选属性: bootst ...
- Kafka(四)- Kafka 生产者
文章目录 一.生产者消息发送流程 1. 发送流程 2. 生产者重要参数列表 二.异步发送 API 1. 普通异步发送 2. 带回调函数的异步发送 3. 同步发送 三.生产者分区 1. 分区好处 2. ...
- Kafka(生产者)
Kafka 1.概述 1.1 消息队列 1.1.1 传统消息队列的应用场景 1.1.2 消息队列的两种模式 1.2 kafka基础结构 2.kafka的快速入门 2.1 集群部署 2.1.1 安装ja ...
- kafka生产者的发送消息的流程以及代码案例
一 kafka发送消息流程 1.1 发送流程原理 kafka在发送消息的过程中,主要涉及两个线程main 线程和 Sender 线程. 在 main 线程 中创建了一个双端队列 RecordAccum ...
- Kafka生产者分区
生产者分区 分区的原因 (1)便于合理使用存储资源,每个Patition在一个Broker上存储,可以把海量的数据按照分区切割成一块一块数据存储在多台Broker上.合理控制分区的任务,可以实现负载均 ...
- Kafka生产者——消息发送流程,同步、异步发送API
生产者消息发送流程 发送原理 Kafka的Producer发送消息采用的是异步发送的方式. 在消息发送的过程中,涉及到了两个线程:main线程和Sender线程,以及一个线程共享变量:RecordAc ...
- java客户端作为kafka生产者测试
[README] 1.本文主要对 java客户端作为kafka 生产者进行测试, 消费者由 centos的kafka命令行线程扮演: 2.消息发送: kafka的生产者采用异步发送消息的方式,在消息发 ...
最新文章
- Git 远程操作详解
- 贝叶斯机器学习:经典模型与代码实现
- Java 建模: 子整体软件开发,第二部分
- endnote如何导入txt文件_python如何处理txt及excel文件
- 客户关系管理系统中对客户及相关数据的导入导出分析处理
- 关于UIScrollViewDelegate协议中每个回调函数的意义及执行
- C语言 · 进制转换
- windows server 2008 web服务器搭建
- 在python中、int表示的数据类型是_python--002--数据类型(int、str)
- 20190927CF训练
- php怎么求最小公倍数,用PHP实现最小公倍数
- 第112章 Caché 函数大全 $ZPOSITION 函数
- rd授权管理器不显示服务器,2008 r2 找不到RD授权管理器
- 小峰峰的pat甲级刷题记录1020
- lib 文件(基础)
- Python-import导入上级目录文件
- 卷积神经网络之优化参数(剪子包袱锤)
- 计算机缺少d3dx9_42.dll,我家电脑里缺少d3dx9_42.dll怎么处理?
- ZZULI—刷题之路
- Windows10修改用户名、密码
热门文章
- 华硕重装后进入bios_华硕台式机重装系统win10按哪个键进入bios设置
- Python爬虫开发学习全教程第二版,爆肝十万字【建议收藏】
- ENVI图像处理(6):NDVI和植被指数
- mac datagrip如何建立本地链接
- 我家淇淇-学习穿衣服
- 单变量微积分笔记28——不定式和洛必达法则
- FTP服务简介与配置
- A*算法最合理的数据结构
- 涂抹mysql 完整_涂抹MYSQL-跟着三思一步一步学MySQL
- php画图取色,图片取色,涂抹代码,Python交流,技术交流区,鱼C论坛 - Powered by Discuz!...