1、acks:
这个参数中是用来指定分区中必须要有多少个副本收到这条消息,之后生产者猜会认为这条消息是成功写入的。acks是生产者客户端的一个非常重要的参数。它涉及到消息的可靠性和吞吐量之间的权衡。
ack=1:默认值为1.只要leader副本成功写入数据,那么它就会收到服务端的成功响应。是消息可靠性和吞吐量的一个这种方案。如果无法写入leader副本,比如在leader副本奔溃,重新选举新的leader副本的过程中,那么生产者就会收到一个错误的响应。为了避免消息丢失,生产者可以选择重发消息。如果成功写入leader副本并成功返回给响应者,且在被其他follower副本拉取之前leader副本奔溃,那么此时消息还是会丢失,因为新选举的leader副本中并没有这条对应的消息。
ack=0:只要消息发送后,不等待服务端的任何响应。在其他配置相同的情况下可以达到最大的吞吐量。如果消息从发送到写入kafka的过程中出现异常,导致kafka并没有收到这条消息,那么生产者也是无从得知,消息也就丢失。
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.
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、bootstrap.servers:
默认值为" ",值kafka集群中的broker地址集合。
11、key.serializer
默认值 “ ”,消息中key的序列化方式。需要实现Serializer接口。
12、value.serializer
默认值 “ ”,消息中value的序列化方式。需要实现Serializer接口。
13、buffer.memory
默认值:33554432(32M),生产者客户端用于缓存消息的缓存区的大小。
14.batch.size
默认值,16384(16KB),用于指定ProducerBatch可以复用内存区域大小。
15、max.in.flight.requests.per.connnection。
默认值 5,限制每个连接(也就是客户端与Node节点之间的连接)最多缓存的请求数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)