# kafka 生产者__重要参数

kafka 生产者__重要参数

[可以参考官网资料][http://kafka.apache.org/documentation.html#producerconfigs]

  • 1、acks:

    这个参数中是用来指定分区中必须要有多少个副本收到这条消息,之后生产者猜会认为这条消息是成功写入的。acks是生产者客户端的一个非常重要的参数。它涉及到消息的可靠性和吞吐量之间的权衡。

    ack=1:默认值为1.只要leader副本成功写入数据,那么它就会收到服务端的成功响应。是消息可靠性和吞吐量的一个这种方案。

    ack=0:只要消息发送后,不等待服务端的任何响应。在其他配置相同的情况下可以达到最大的吞吐量。

    ack=-1:等待所有的ISR副本都成功写入数据后,才返回成功响应。只要ISR中的副本数量大于1个,就一定能保证消息不会丢失。具有最大的可可靠性。配置min.insync.replicas大于1,将能保证消息不会丢失。

  • 2、max.request.size

    这个参数的用来限制生产者客户端能够发送的消息最大值。默认值为:1048576B,即1M。

  • 3、retires和retry.backoff.ms

    retires参数是用来配置生产者重试的次数,默认值为0。即不进行重试,即在发送消息的时候不进行任何的重试动作。消息从生产者写入到broker的时候可能会发生一些临时性的异常,比如网络抖动,leader副本选举等,这种异常往往是可以自行恢复的。

  • 4、compression.type

    用来指定消息压缩的类型,默认值为:NONE。该参数还可以配置为gzip、snappy、lz4、zstd.

  • 5、connections.max.idle.ms

    用来配置多长时间后关闭空闲连接。默认值为:540000ms,即9分钟。

  • 6、linger.ms

    这个参数用来指定生产者发送ProducerBatch之前等待更多的消息加入的时间,默认值为0。增大这个参数的值,能提升一定的吞吐量,但会增加消息的延迟

  • 7、receive.buffer.bytes

    这个参数用来设定Socket接收消息缓冲区的大小,默认值为32768,即32KB。如果设置为-1,则使用操作系统的默认值。如果producer与kafka处于不同的机房,则可以适当的增大这个参数的值。

  • 8、send.buffer.bytes

    这个参数用来设置Socket发送消息的缓冲区大小,默认值为131072即128K。与receive.buffer.bytes参数一样,如果设置为-1,则使用操作系统的默认值。

  • 9、request.timeout.ms

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值