У меня есть стандартная установка Spring Boot с некоторой конфигурацией Kafka, в которой есть @Listener:
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
@EnableKafka
@Configuration
class KafkaConfig {
@KafkaListener(id = "my_id", groupId = "my_id", topics = "some_topic")
public void listen(String in) {
// ...
}
}
и когда я запускаю это, я не вижу нового потребителя в пользовательском интерфейсе администратора Kafka, но я вижу это повторяющееся до тошноты в журнале:
2023-04-21 09:21:50.043 INFO 14284 --- [ e2e_test-0-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer-my_id-1, groupId=my_id] Node -1 disconnected.
2023-04-21 09:21:50.043 WARN 14284 --- [ e2e_test-0-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer-my_id-1, groupId=my_id] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.
2023-04-21 09:21:50.043 WARN 14284 --- [ e2e_test-0-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer-my_id-1, groupId=my_id] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected
Почему он пытается подключиться к брокеру на локальном хосте, когда я настроил его для подключения в другом месте моего application.yml?
config:
kafka:
servers: "my.server:9092"
ssl: false
Как оказалось его использует Camel, я просто не использую Camel в своем проекте (взял конфиг с другого микросервиса). Мой плохой 😅




Клиент Kafka в Spring Boot управляется свойствами конфигурации с префиксом spring.kafka.*:
spring:
kafka:
bootstrap-servers: my.server:9092
Смотрите документы: https://docs.spring.io/spring-kafka/reference/html/
Какую ссылку вы использовали для настройки этой конфигурации yaml? Где ваш класс конфигурации, который на самом деле автоматически подключается
kafka.serversили создает фабрику потребителей?