gpt4 book ai didi

docker - 如何更改 Spring Cloud Stream Kafka binder 的目标?

转载 作者:行者123 更新时间:2023-12-02 19:22:19 26 4
gpt4 key购买 nike

使用 Spring Cloud Stream 2.1.4 和 Spring Boot 2.1.10,我试图定位 Kafka 的本地实例。
这是到目前为止我的 projetc 配置的摘录:

spring.kafka.bootstrap-servers=PLAINTEXT://localhost:9092
spring.kafka.streams.bootstrap-servers=PLAINTEXT://localhost:9092
spring.cloud.stream.kafka.binder.brokers=PLAINTEXT://localhost:9092
spring.cloud.stream.kafka.binder.zkNodes=localhost:2181
spring.cloud.stream.kafka.streams.binder.brokers=PLAINTEXT://localhost:9092
spring.cloud.stream.kafka.streams.binder.zkNodes=localhost:2181

但是活页夹不断调用错误的目标:
java.io.IOException: Can't resolve address: kafka.example.com:9092

如果这些属性不会欺骗他,我该如何指定目标?
此外,我通过 Docker Bitnami 镜像部署 Kafka 实例,我不想使用 SSL 配置(请参阅 PLAINTEXT 协议(protocol)),但我找不到基本凭据登录的属性。有谁知道这是否没有希望?

这是我的 docker-compose.yml
version: '3'
services:
zookeeper:
image: bitnami/zookeeper:latest
container_name: zookeeper
environment:
- ZOO_ENABLE_AUTH=yes
- ZOO_SERVER_USERS=kafka
- ZOO_SERVER_PASSWORDS=kafka_password
networks:
- kafka-net
kafka:
image: bitnami/kafka:latest
container_name: kafka
hostname: kafka.example.com
depends_on:
- zookeeper
ports:
- 9092:9092
environment:
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
- KAFKA_ZOOKEEPER_USER=kafka
- KAFKA_ZOOKEEPER_PASSWORD=kafka_password
networks:
- kafka-net
networks:
kafka-net:
driver: bridge

提前致谢

最佳答案

hostname不是问题,而是广告听众protocol//:port默认情况下,导致主机名被通告的映射。您应该更改它,而不是主机名。

  kafka:
image: bitnami/kafka:latest
container_name: kafka
hostname: kafka.example.com # <--- Here's what you are getting in the request
...
environment:
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://:9092 # <--- This returns the hostname to the clients

如果您打算运行代码 另一个容器,你应该做广告 localhost除了或代替容器主机名。

One year later, my comment still is not been merged into the bitnami README ,在那里我能够使用以下变量(已更改以匹配您的部署)
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_CFG_LISTENERS=PLAINTEXT://:29092,PLAINTEXT_HOST://:9092
KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka.example.com:29092,PLAINTEXT_HOST://localhost:9092

关于docker - 如何更改 Spring Cloud Stream Kafka binder 的目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58765586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com