【问题标题】:Running Spring Boot application with Kafka in Docker-compose在 Docker-compose 中使用 Kafka 运行 Spring Boot 应用程序
【发布时间】:2021-12-15 00:40:42
【问题描述】:

我有应用程序(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 spring docker apache-kafka docker-compose


    【解决方案1】:

    从这个答案中的comments 之一看来,在spring boot 中您可以使用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
    

    【讨论】:

    • 环境变量部分可以是散列或列表
    猜你喜欢
    • 2019-05-31
    • 1970-01-01
    • 2018-10-04
    • 2021-08-26
    • 1970-01-01
    • 2018-07-11
    • 2021-08-12
    • 2019-07-05
    • 2021-09-14
    相关资源
    最近更新 更多