在 Docker-compose 中使用 Kafka 运行 Spring Boot 应用程序

问题描述 投票:0回答:1

我有应用程序(kafka 客户端)。我有下一个属性:

spring.kafka.bootstrap-servers=127.0.0.1:29092
spring.kafka.consumer.group-id=mc3

我在 Docker-compose 中有 kafka:

kafka:
  image: confluentinc/cp-kafka:latest
  depends_on:
    - zookeeper
  ports:
    - 29092:29092
  environment:
    KAFKA_BROKER_ID: 1
    KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
    KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
    KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
    KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

我需要将应用程序移入以撰写如下:

mc3-service:
  image: ksonv/mc3-service:0.0.1-SNAPSHOT
  ports:
    - "8103:8103"
  depends_on:
    - kafka
  environment:
    SPRING_KAFKA_BOOTSTRAP_SERVER: kafka:9092
    SPRING_KAFKA_CONSUMER_GROUP_ID: mc3

但我不知道如何在撰写的环境部分中写入

spring.kafka.bootstrap-servers
属性。

我正在尝试像SPRING_KAFKA_BOOTSTRAP_SERVER。但它不起作用。

如何确定 compose 环境部分中的

spring.kafka.bootstrap-servers
属性?

java docker apache-kafka docker-compose spring-kafka
1个回答
2
投票

从这个答案中的comments之一来看,似乎在春季引导中你可以使用

SPRING_KAFKA_BOOTSTRAP_SERVERS
(请注意,你错过了最后的
S
):

environment:
- SPRING_KAFKA_BOOTSTRAP_SERVERS=kafka:9092
...

docker-compose 中的环境变量通常以

-
(YAML 列表)开头,并用
=
赋值。

您可以通过

exec
验证它是否传播到正在运行的容器中,并运行
printenv
以查看您的环境变量是否存在:

docker exec -it <container_name or container_id> bash
© www.soinside.com 2019 - 2024. All rights reserved.