生产者配置
key.serializer
value.serializer
bootstrap.servers
acks (默认 all)
0 / 1 / all 或者 -1
all 表示 所有 副本都收到了 消息并给予确认。保证消息发送的可靠性
buffer.memory 和 max.block.ms 和 batch.size 和 linger.ms
buffer.memory (默认32M) 可以理解成 socket 缓冲大小,当 数据量 超过,则后来的数据 就要等待,等待的时间由 max.block.ms (默认 1min)设置。
batch.size (默认16K)是 生产者 向 socket缓冲添加数据的大小,当达到 batch.size时,才添加。而linger.ms (默认是 0) 是为了 数据一直达不到 batch.size而导致数据发不出去的情况的。默认0 即表示有数据时就发送。
compression.type
压缩类型 none
, gzip
, snappy
, lz4
, or zstd
retries 和 delivery.timeout.ms 和 max.in.flight.requests.per.connection 和 enable.idempotence
retries 表示 消息发送失败后重试的次数,默认值: 2147483647,这个重试次数相当的大啊。因此,需要用 delivery.timeout.ms (默认 2min) 来控制 发送的总时长,所以,当一条消息发送失败时,但是时间没有到 delivery.timeout.ms设置的时间时,就会继续重试,注意的是,需要大于 delivery.timeout.ms + linger.ms
max.in.flight.requests.per.connection (默认值 5)表示每个连接上发送的 最大请求个数。提高这个配置的值,可以提高吞吐量。不过,如果可以失败重试的时候,并且 enable.idempotence 设置的是 false,则数据的顺序可能会乱。如果 enable.idempotence 设置的是true,则可以保证数据的顺序。enable.idempotence (默认值 true) 是保证幂等性的配置。
sasl.jaas.config 和 sasl.mechanism 和 security.protocol
这三可以用来配置 jaas的加密配置
等等,生产者配置项还有很多,以上了解后,基本可以了。
消费者配置
key.deserializer
value.deserializer
bootstrap.servers
group.id
auto.offset.reset
设置消费者 开始消费的偏移量,默认值 latest。比如:当 消费者 第一次消费时,如果设置的是 earliest,那么 消费者 会把 broker 的 所有数据都消费;如果设置的是 latest,那么 只有 新生成的数据 才消费。 所以,具体设置什么值,需要看 消费者 具体的 需求。 但是 一般来说,保持默认值,从最新的数据开始消费。
enable.auto.commit
偏移量自动提交设置,默认值 true,一般来说,我们需要 将此设置成 false,由程序员 自己控制。
max.poll.interval.ms 和 max.poll.records
sasl.jaas.config 和 sasl.mechanism 和 security.protocol
这三可以用来配置 jaas的加密配置
等等,消费者配置项还有很多,以上了解后,基本可以了。