作为 Kafka 生产者渴望连接到主题

Eagerly connect to topic as a Kafka Producer

我正在实施一项服务,该服务通过 Kafka 主题将消息发送到下游服务。这只会在我的服务 API 被调用时发生,这种情况可能很少发生,至少一开始是这样。

我发现反应式 Kafka 生产者 API 延迟连接到 Kafka,我确信这对大多数用例来说都很棒,但我想知道我的 Kafka 连接配置是在我部署服务时正确。我不想等到第一个 API 电话才发现哪里出了问题。

目前我得到的解决方案是在启动时向主题发送初始化消息,但这感觉很笨拙。我可以做些什么来强制与主题建立初始连接,或者至少验证连接配置?

val response = kafkaSender.send(Mono.just(initialise))
        .next()
        .block();

if (response == null) {
    throw new RuntimeException("empty Mono from Kafka initialisation");
}

if (response.exception() != null) {
    throw propagate(response.exception());
}

如果您不想通过生产者发送心跳,您可以使用 AdminClient API 来描述您将要使用的集群或主题