我将Spring Cloud Stream 2.1.4与Spring Boot 2.1.10结合使用,试图将Kafka的本地实例作为目标。 这是到目前为止我的projetc配置的摘录:
stereoCalibrate
但是活页夹不断调用错误的目标:
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
如果这些属性不会欺骗我该如何指定目标? 此外,我通过Docker Bitnami映像部署了Kafka实例,并且我不想使用SSL配置(请参阅PLAINTEXT协议),但是我找不到基本凭证登录的属性。有谁知道这是没有希望的吗?
这是我的docker-compose.yml
java.io.IOException: Can't resolve address: kafka.example.com:9092
预先感谢
答案 0 :(得分:1)
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,在这里我可以将其与以下vars配合使用(已更改以匹配您的部署)
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
答案 1 :(得分:0)
好的:通过两次查看“ dockerfile”(对cricket_007表示感谢)来使它起作用:
kafka:
...
hostname: localhost
记录:我可以摆脱上面的所有属性,默认为Kafka localhost:9092