Производитель Apache Kafka не может видеть брокера

#java #spring-boot #apache-kafka #microservices #spring-kafka

Вопрос:

Я настроил Apache Kafka на ПК и добавил новые темы. Когда я запускаю Kafka и Zookeeper, он запускается без проблем, но когда я пытаюсь опубликовать сообщения, сообщение не отправляется, и я вижу следующий журнал:

 WARN 18004 --- [ad | producer-1] org.apache.kafka.clients.NetworkClient : [Producer clientId=producer-1] Connection to node -1 (/127.0.0.1:9092) could not be established. Broker may not be available. WARN 18004 --- [ad | producer-1] org.apache.kafka.clients.NetworkClient : [Producer clientId=producer-1] Bootstrap broker 127.0.0.1:9092 (id: -1 rack: null) disconnected  

Мой кафкианский конфиг-это:

 @Configuration public class KafkaProducerConfig {   private final static String SERVER_ADDRESS = "127.0.0.1:9092";   @Bean  public ProducerFactorylt;String, Stringgt; producerFactory() {  Maplt;String, Objectgt; configProps = new HashMaplt;gt;();  configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, SERVER_ADDRESS);  configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);  configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);   return new DefaultKafkaProducerFactorylt;gt;(configProps);  }   @Bean  public KafkaTemplatelt;String, Stringgt; kafkaTemplate() {  return new KafkaTemplatelt;gt;(producerFactory());  }  }  

Мой сервер.свойства-это:

 ############################# Server Basics ############################# broker.id=0 ############################# Socket Server Settings ############################# listeners=PLAINTEXT://127.0.0.1:9092  num.network.threads=3  num.io.threads=8  socket.send.buffer.bytes=102400  socket.receive.buffer.bytes=102400  socket.request.max.bytes=104857600  ############################# Log Basics #############################  log.dirs=./tmp/kafka-logs  num.partitions=1  num.recovery.threads.per.data.dir=1  ############################# Internal Topic Settings #############################  offsets.topic.replication.factor=1  transaction.state.log.replication.factor=1  transaction.state.log.min.isr=1  ############################# Log Retention Policy #############################  log.retention.hours=168  log.segment.bytes=1073741824  log.retention.check.interval.ms=300000  ############################# Zookeeper #############################  zookeeper.connect=localhost:2181  # Timeout in ms for connecting to zookeeper  zookeeper.connection.timeout.ms=18000  ############################# Group Coordinator Settings #############################  group.initial.rebalance.delay.ms=0  

В чем проблема? Как я могу это решить?

Комментарии:

1. Все ли работает на одном и том же хосте? Нет докера, виртуальных машин или WSL2? Работает ли производитель консоли?

2. кафка работает через vsl2, но микросервис через Windows. Это проблема?

3. ДА. Запустите свое приложение также в WSL2. Localhost не указывает на сетевой мост WSL2 (по умолчанию переадресация портов на гипервизор отсутствует).