博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kafka producer 生产者客户端参数配置
阅读量:4557 次
发布时间:2019-06-08

本文共 2333 字,大约阅读时间需要 7 分钟。

 

  在生产者向broker发送消息时,需要配置不同的参数来确保发送成功。

acks = all         #指定分区中有多少副本必须收到这条消息,生产者才认为这条消息发送成功            acks = 0      #生产者发送消息之后不需要等待任何服务端的响应        acks = 1        #只要分区的leader副本成功写入消息,那么它就会收到服务端的成功响应        acks = -1 或all   #生产者在发送消息之后,需要等待ISR中的所有副本都成功写入消息之后,才能够收到来自服务端的成功响应。batch.size = 16384        #ProducerBatch 最大缓存空间,默认16KB    bootstrap.servers =[192.1.1.2:9092]    #kafka集群    buffer.memory = 33554432            #RecordAccumulator消息累加器最大存储空间,默认32MB     client.id =                         #客户端id    compression.type = none             #设置消息的压缩格式("gzip,snappy,lz4")\       对消息压缩可以极大的减少网络传输、降低网络IO,从而提高整体性能。这是一种时间换空间的优化方式,如果对延时性要求高,则不推荐对消息进行压缩        connections.max.idle.ms = 540000    #设置多久之后关闭闲置连接,默认9分钟enable.idempotence = false            interceptor.classes = []            #拦截器配置    key.serializer = class org.apache.kafka.common.serialization.IntegerSerializer    #key的序列化器    linger.ms = 0                        #生产者在客户端发送ProducerBatch被填满或等待时间超过linger.ms值是发出去                                        #指定生产者发送producerBatch 之前等待更多消息加入producerRecord加入ProducerBatch的时间    max.block.ms = 60000                #用来控制KafkaProducer中send()方法和partitionsFor()方法的阻塞时间,当生产者的发送缓冲区                                        #已满,或者没有可用的元数据时,这些方法就会阻塞。    max.in.flight.requests.per.connection = 5        #客户端与broker端连接最多缓存5个未响应的请求(即发送到broker端,没来得及收到响应),                                                    #如果超过了就不能再发送请求,可以通过这个参数大小来判断是否有消息堆积    max.request.size = 1048576                        #生产者客户端能发送的消息的最大值,默认1M(不建议改,会引起联动)    metadata.max.age.ms = 300000                    #元数据更新时间,5分钟partitioner.class = class com.zpb.partitioner.CustomPartition   #自定义key分区器,可以根据指定的key来作特殊的的相关业务 retries = 0                                        #生产者重试次数,默认0,在发生异常时不进行任何的重试。在发送数据时会遇到2种异常,一种是可恢复的,一种是不可                                                    #恢复的,如:leader的选举,网络抖动等这些异常是可以恢复的,这个时候设置retries大于0就可以进行重试,在网络稳定                                                    #或者leader选举完后,这种异常就会消失,数据在重发时就会正常,在不可恢复异常时,如超过了max.request.size最大值                                                    #时,这种错误是不可恢复的    retry.backoff.ms = 100                            #重试之间的时间间隔,最好预估一下异常恢复的时间间隔,让重试时间大于异常恢复时间,value.serializer = class org.apache.kafka.common.serialization.StringSerializer        #value序列化器

 

转载于:https://www.cnblogs.com/MrRightZhao/p/11355991.html

你可能感兴趣的文章
2、文件夹
查看>>
11、求二进制中1的个数
查看>>
【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--请求处理结果适配篇(7/8)...
查看>>
CodeForces 731A Night at the Museum
查看>>
MySQL 删除数据库
查看>>
JavaScript 字符串(String) 对象
查看>>
How to use VisualSVN Server and TortoiseSVN to host your codes and control your codes' version
查看>>
微信小程序picker组件 - 省市二级联动
查看>>
Dynamics CRM 给视图配置安全角色
查看>>
Eclipse修改已存在的SVN地址
查看>>
(转)使用 python Matplotlib 库绘图
查看>>
进程/线程切换原则
查看>>
正则表达式语法
查看>>
20165301 2017-2018-2 《Java程序设计》第四周学习总结
查看>>
Vue的简单入门
查看>>
urllib 中的异常处理
查看>>
通过SQL Server的扩展事件来跟踪SQL语句在运行时,时间都消耗到哪儿了?
查看>>
比较:I/O成员函数getline() 与 get()(第二种用法)的用法异同
查看>>
7.内部类(一)之详解内部类
查看>>
1.messager消息提示框
查看>>