我的kafka集群配置设置了
auto.create.topics.enable=false
集群版本kafka_2.11-0.10.0.0
kafka集群虽然配置了auto.create.topics.enable=false
,但是通过api produce 仍然会自动创建不存在的topic
以下是api:
public class Producer {
public static void main(String[] args) {
Properties props = new Properties();
props.put("bootstrap.servers", "10.5.11.11:9093");
props.put("acks", "all");
props.put("retries", 0);
props.put("batch.size", 16384);
props.put("linger.ms", 1);
props.put("buffer.memory", 33554432);
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
Producer<String, String> producer = new KafkaProducer<>(props);
for(int i = 0; i < 100; i++)
producer.send(new ProducerRecord<String, String>("test", Integer.toString(i), Integer.toString(i)));
producer.close();
}
}
这不会,修改好自动创建之后,重启kafka了吗
重启了,仍然可以通过api自动创建,不清楚问题在哪,有什么办法能看到目前集群的生效配置么?或者api在操作时候有什么配置可以优先于集群配置的么
不科学,你把配置贴我看看。
broker.id=173 listeners=PLAINTEXT://1.2.1.173:9093 num.network.threads=32 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 log.dirs=/opt/appdata/kafka-data num.partitions=1 num.recovery.threads.per.data.dir=1 log.retention.hours=120 log.retention.bytes=128849018880 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 zookeeper.connect=zk1:2181,zk2:2181,zk3:2181/kafka zookeeper.connection.timeout.ms=6000 delete.topic.enable=true auto.create.topics.enable=false
没问题,你重启的时候,配置加载的时候,看到auto.create.topics.enable了吗
看到了
auto.create.topics.enable=false
,这个配置是不是整个集群都重启才起作用?是的,集群内都配置并重启
好的,多谢多谢~我全部重启试一下~期待能解决~
如何?
不好意思大神 回复晚了,重启了集群,用api连接不存在的topic 还是会自动创建topic,很费解。。。
你的答案