为什么当我运行下面的生产者代码而kafka甚至没有运行时,我没有收到一条错误消息?
我希望 createTopics
方法引发异常,但它不会发生。为什么?
final Properties properties = new Properties();
properties.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
properties.put(AdminClientConfig.REQUEST_TIMEOUT_MS_CONFIG, "1000");
AdminClient adminClient = AdminClient.create(properties);
NewTopic newTopic = new NewTopic("events", 1, (short) 1);
adminClient.createTopics(Arrays.asList(newTopic));
adminClient.close();
1条答案
按热度按时间q35jwt9p1#
createtopics方法返回
CreateTopicsResult
与KafkaFutures
作为价值观。因为您当前没有阻止完成此操作的代码(使用get
)而且不捕捉任何异常,您的代码只会正常运行,而不会通知代理不可用。下面的代码将抛出
ExecutionException
当您的经纪人不在时:我使用kafka客户端2.5.0进行了测试,下面是示例:
要注意班级
Admin
(上流社会)AdminClient
)注解为“正在发展”,在将来的版本中可能会更改。