kafka配置

文章详细介绍了Kafka生产者和消费者的配置参数,包括序列化方式、消息确认策略、重试机制、批量发送、压缩类型、幂等性保障以及安全配置。这些设置对于确保数据的可靠传输和系统性能至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生产者配置

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 

压缩类型 nonegzipsnappylz4, 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.configsasl.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的加密配置

等等,消费者配置项还有很多,以上了解后,基本可以了。

要检查和验证 Kafka配置设置,可以通过多种方式进行,包括直接检查配置文件、验证服务启动状态、以及通过客户端连接测试。以下是详细步骤: ### 验证 Kafka 配置文件 Kafka 的主要配置文件是 `server.properties`,通常位于 `config/` 目录下。需要检查的关键配置包括: - `broker.id`:确保每个 broker 的 ID 唯一。 - `listeners`:检查监听地址和端口是否正确配置,例如 `PLAINTEXT://:9092`。 - `log.dirs`:确认日志存储路径是否正确且具有写入权限。 - `zookeeper.connect`:验证是否正确指向 Zookeeper 服务地址。 - `num.partitions`:确认默认分区数量是否符合预期需求。 对于启用 SASL/PLAIN 认证的情况,需要检查 `sasl.enabled.mechanisms` 和 `sasl.mechanism.inter.broker.protocol` 配置项是否正确设置为 `PLAIN` [^1]。 ### 验证 Kafka 服务启动状态 在 Kafka 服务器上执行以下命令来启动 Kafka: ```bash bin/kafka-server-start.sh config/server.properties & ``` 启动后,可以通过以下命令检查 Kafka 进程是否运行: ```bash jps -ml ``` 如果 Kafka 成功启动,应该能看到 `Kafka` 进程 [^3]。 ### 验证端口监听情况 使用以下命令检查 Kafka 是否在预期端口上监听: ```bash netstat -tuln | grep 9092 ``` 如果 Kafka 正确配置并运行,应该能看到类似 `tcp6 0 0 :::9092 :::* LISTEN` 的输出 [^3]。 ### 验证 SASL/PLAIN 认证配置 创建一个 `kafka_client_jaas.conf` 文件,内容如下: ```conf KafkaClient { org.apache.kafka.common.security.plain.PlainLoginModule required username="user" password="password" user_user="password"; }; ``` 然后设置 JVM 参数以使用该 JAAS 配置文件: ```bash export KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/kafka_client_jaas.conf" ``` 使用 Kafka 自带的生产者和消费者脚本进行测试: ```bash bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning ``` 如果能够成功发送和接收消息,则表示 SASL/PLAIN 认证配置成功 [^1]。 ### 验证 SSL 配置 为验证 SSL 配置,首先需要确保 Kafka配置文件中包含以下设置: - `ssl.keystore.location=/path/to/keystore.jks` - `ssl.keystore.password=keystore_password` - `ssl.key.password=key_password` - `ssl.truststore.location=/path/to/truststore.jks` - `ssl.truststore.password=truststore_password` - `ssl.client.auth=required` 使用带有 SSL 配置的客户端进行连接测试,确保能够成功建立加密连接 [^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值