无法创建topic
来源:4-6 查看Topic列表及Internal杂谈

qq_小胖_0
2020-04-25
[main] DEBUG org.apache.kafka.clients.admin.KafkaAdminClient - [AdminClient clientId=adminclient-1] Queueing Call(callName=createTopics, deadlineMs=1587828993633) with a timeout 120000 ms from now.
就报这个问题,但是topic就是一直无法创建,请问老师是什么问题?
写回答
4回答
-
0x0wh04m1
2020-04-27
1.get的代码可以参考一下我这个
/** * 创建Topic */ public static void createTopic() throws Exception { AdminClient adminClient = adminClient(); // 副本因子 short replicationFactor = 1; NewTopic newTopic = new NewTopic(TOPIC_NAME, 1, replicationFactor); CreateTopicsResult result = adminClient.createTopics(Arrays.asList(newTopic)); System.out.println("CreateTopicResult : " + result.all().get()); }
2.如果你用的是虚拟机,确保你的2181和9092端口是开放的,或者可以先直接把防火墙关了
我看你说能查看到topic信息,那估计就是因为result是异步返回的,子线程还没执行完创建topic的操作主线程的退出了
212022-09-13 -
端碗吹水
2020-05-15
我也出现了类似的问题,是因为客户端还没来得及向Kafka发送创建Topic的信息就已经结束了,添加一行Thread.sleep后,问题解决:
/** * 创建topic */ public static void createTopic() throws ExecutionException, InterruptedException { AdminClient adminClient = adminClient(); // topic的名称 String name = "MyTopic3"; // partition数量 int numPartitions = 1; // 副本数量 short replicationFactor = 1; NewTopic topic = new NewTopic(name, numPartitions, replicationFactor); CreateTopicsResult result = adminClient.createTopics(List.of(topic)); // 避免客户端连接太快断开而导致Topic没有创建成功 Thread.sleep(500); // 获取topic设置的partition数量 System.out.println(result.numPartitions(name).get()); }
112023-02-03 -
慕尼黑4503343
2020-04-26
我也遇到同样问题:可以获取到adminClient,但是无法创建topic,无法获取topic列表,加了get()一直timeout。应该是跟虚拟机里的kafka配置有关,同样的代码我换成自己申请的kafka云服务器就没问题。
012020-04-26 -
Allen
2020-04-26
看起来是创建超时或者链接超时, 确认下链接成功没有
032020-04-27
相似问题