#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 (по умолчанию переадресация портов на гипервизор отсутствует).