kafka AdminClient API等待节点分配超时

Spa*_*ide 8 java runtimeexception apache-kafka

我是Kafka的新手,我正在尝试使用AdminClientAPI来管理在本地计算机上运行的Kafka服务器.我的设置与Kafka文档的快速入门部分完全相同.唯一的区别是我没有创建任何主题.

我在此设置上运行任何shell脚本都没有问题,但是当我尝试运行以下java代码时:

public class ProducerMain{

    public static void main(String[] args) {
        Properties props = new Properties();
        props.setProperty(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, 
            "localhost:9092");


        try(final AdminClient adminClient = 
              KafkaAdminClient.create(props)){

            try {
                final NewTopic newTopic = new NewTopic("test", 1, 
                    (short)1);

                final CreateTopicsResult createTopicsResult = 
                    adminClient.createTopics( 
                         Collections.singleton(newTopic));

                createTopicsResult.all().get();

            }catch (InterruptedException | ExecutionException e) {
                e.printStackTrace();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

错误: TimeoutException: Timed out waiting for a node assignment

Exception in thread "main" java.lang.RuntimeException: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment.
at ProducerMain.main(ProducerMain.java:41)
    <br>Caused by: java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment.
at org.apache.kafka.common.internals.KafkaFutureImpl.wrapAndThrow(KafkaFutureImpl.java:45)
at org.apache.kafka.common.internals.KafkaFutureImpl.access$000(KafkaFutureImpl.java:32)
at org.apache.kafka.common.internals.KafkaFutureImpl$SingleWaiter.await(KafkaFutureImpl.java:89)
at org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:258)
at ProducerMain.main(ProducerMain.java:38)
<br>Caused by: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment.
Run Code Online (Sandbox Code Playgroud)

我在网上搜索了一个问题,说明问题可能是什么,但到目前为止还没有发现任何问题.任何建议都是受欢迎的,因为我在绳子的最后.

cri*_*007 2

看来你的经纪人身体不太好……

这段代码工作正常

public class Main {

    static final Logger logger = LoggerFactory.getLogger(Main.class);

    public static void main(String[] args) {
        Properties properties = new Properties();
        properties.setProperty(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
        properties.setProperty(AdminClientConfig.CLIENT_ID_CONFIG, "local-test");
        properties.setProperty(AdminClientConfig.RETRIES_CONFIG, "3");

        try (AdminClient client = AdminClient.create(properties)) {
            final CreateTopicsResult res = client.createTopics(
                    Collections.singletonList(
                            new NewTopic("foo", 1, (short) 1)
                    )
            );
            res.all().get(5, TimeUnit.SECONDS);
        } catch (InterruptedException | ExecutionException | TimeoutException e) {
            logger.error("unable to create topic", e);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以在代理日志中看到该主题已创建