返回到文章

采纳

编辑于

kafka topic 使用正则表达式订阅数据非常慢

kafka

你好,我在 consumer 订阅 topic 时使用了正则表达式,先启动consumer订阅数据,之后动态增加新的topic,并使用producer向新的topic发送数据。
我发现 consumer 要在 producer 发送数据几分钟之后才能接收到新的 topic 里的数据,前面几分钟的数据没有订阅到。
延迟大概5分钟。
请问有什么办法能解决这个延迟问题吗?
部分代码如下:

kafkaProps.put("bootstrap.servers", brokers);
kafkaProps.put("group.id", groupID);
kafkaProps.put("client.id", clientID);
kafkaProps.put("auto.offset.reset", "latest");
kafkaProps.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
kafkaProps.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
kafkaProps.put("enable.auto.commit", "false");
String topic = "org.*.datatype";
Pattern pattern = Pattern.compile(topic);
consumer.subscribe(pattern);
//轮询
while (true) {
    ConsumerRecords<String, String> records = consumer.poll(1000);
    ......
}

非常感谢!