Настроить видимость Kafka контейнера в другом контейнере
Осваиваю взаимодествие приложения с Kafka Ситуация такая: приложение собирается в одном контейнере, а Kafka - в другом. Не настраиваю одну и ту же сеть между ними, хочу в начале разобраться, как правильно настроить видимость
Настройки Kafka в docker-compose такие:
kafka:
image: confluentinc/cp-server:7.2.1
hostname: kafka
container_name: kafka
depends_on:
- zookeeper
ports:
- "29092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
Часть кода, где происходит подключение к брокеру:
KafkaProtocolBuilder kafkaProtocol = kafka()
.topic("test")
.properties(
Map.of(
ProducerConfig.ACKS_CONFIG, "1",
ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092",
ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer",
ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG , "org.apache.kafka.common.serialization.StringSerializer"
)
);
Явно настраиваю что-то не так, потому что приложение не видить Kafka. Подскажите, пожалуйста, как сделать это правильно?
Контейнер с приложением пробую также запустить
docker run <имя контейнера> --network host