kafka系列七、kafka核心配置

1、producer核心配置

1、acks :发送应答(默认值:1)

生产者在考虑完成请求之前要求leader收到的确认的数量。这控制了发送的记录的持久性。允许以下设置:

  1. acks=0:设置为0,则生产者将完全不等待来自服务器的任何确认。记录将立即添加到socket缓冲区,并被认为已发送。在这种情况下,不能保证服务器已经收到记录,重试配置将不会生效(因为客户机通常不会知道任何失败)。每个记录返回的偏移量总是-1。
  2. acks=1:leader会将记录写到本地日志中,但不会等待所有follower的完全确认。在这种情况下,如果leader在记录失败后立即失败,但在追随者复制记录之前失败,那么记录就会丢失。
  3. acks=all / -1:leader将等待完整的同步副本来确认记录。这保证了只要至少有一个同步副本仍然存在,记录就不会丢失。这是最有力的保证。这相当于acks=-1设置。

2、batch.size:批量发送大小(默认:16384,16K)

缓存到本地内存,批量发送大小,意思每次发送16K到broke。当多个记录被发送到同一个分区时,生产者将尝试将记录批处理成更少的请求。这有助于客户机和服务器上的性能。此配置以字节为单位控制默认批处理大小。

3、bootstrap.servers:服务器地址

broke服务器地址,多个用逗号割开。

4、buffer.memory:生产者最大可用缓存 (默认:33554432,32M)

生产者可以用来缓冲等待发送到服务器的记录的总内存字节。如果记录被发送的速度超过了它们可以被发送到服务器的速度,那么生产者将阻塞max.block。然后它会抛出一个异常。

该设置应该大致与生成器将使用的总内存相对应,但不是硬绑定,因为生成器使用的并非所有内存都用于缓冲。一些额外的内存将用于压缩(如果启用了压缩)以及维护飞行中的请求。

生产者产生的消息缓存到本地,每次批量发送batch.size大小到服务器。

5、client.id:生产者ID(默认“”)

请求时传递给服务器的id字符串。这样做的目的是通过允许在服务器端请求日志中包含逻辑应用程序名称,从而能够跟踪ip/端口之外的请求源。

6、compression.type:压缩类型(默认值:producer)

指定给定主题的最终压缩类型。此配置接受标准压缩编解码器(“gzip”、“snappy”、“lz4”、“zstd”)。它还接受“未压缩”,相当于没有压缩;以及“生产者”,即保留生产者设置的原始压缩编解码器。

“gzip”:压缩效率高,适合高内存、CPU

“snappy”:适合带宽敏感性,压缩力度大

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/wangzhuxing/p/10111831.html