在Java中哪里设置参数min.insync.replicas和ack?

Vio*_*tta 4 java broker apache-kafka kafka-topic

我需要设置两个参数min.insync.replicasacks。官方文档说该参数min.insync.replicas是broker的参数。我是否正确理解,对于所有主题,都应该在 server.properties 文件中指定它?其中之一是使用命令 kafka.config.sh。Acks参数只能在配置生产者时设置,例如从应用程序?更改文件 Producer.properties 没有帮助吗?

Gio*_*ous 7

中定义的主题相关属性server.properties对所有主题都有效(假设您在创建主题时没有修改任何配置)。


现在,如果出于任何原因您想要修改特定主题的一个属性,您可以通过为该主题提供新配置来覆盖全局配置。例如,

bin/kafka-configs.sh \
    --zookeeper localhost:2181 \
    --alter \
    --entity-type topics \
    --entity-name yourTopicName \
    --add-config min.insync.replicas=2
Run Code Online (Sandbox Code Playgroud)

或者,如果您想创建一个配置与中定义的配置不同的主题,server.properties可以使用:

bin/kafka-topics.sh \
    --zookeeper localhost:2181 \
    --create \
    --topic yourTopicName \
    --partitions 1  \
    --replication-factor 3 \
    --config min.insync.replicas=2
Run Code Online (Sandbox Code Playgroud)

最后,如果您想验证配置是否有效,您可以简单描述主题,添加的配置将显示在(Configs右上角)的输出中:

bin/kafka-topics \
    --zookeeper localhost:2181 \
    --describe  \
    --topic yourTopicName
Run Code Online (Sandbox Code Playgroud)