spring-boot - 使用 kafka 将主机协议从 http 更改为 https
问题描述
当我使用 http 协议 kafka 与我一起运行时,我遇到了 kafka 的问题,没有任何问题
但是在将协议从 http 升级到 https 之后
升级后所有服务都返回相同的错误
2021-10-28 23:16:26.367 WARN 1 --- [ad | producer-1] org.apache.kafka.clients.NetworkClient : [Producer clientId=producer-1] Connection to node 1 (/206.189.178.228:9092) could not be established. Broker may not be available.
2021-10-28 23:18:02.623 WARN 1 --- [ntainer#1-0-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer-2, groupId=groupId] Connection to node 1 (/206.189.178.228:9092) could not be established. Broker may not be available.
在生产者和消费者中,我不知道会发生什么,或者这个错误是否来自 SSL
但我没有更改任何关于 Kafka 的配置
这是我的 kafak.yml 文件
kafka.yml
version: '2'
services:
zookeeper:
image: confluentinc/cp-zookeeper:5.5.0
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
networks:
- food_default
kafka:
image: confluentinc/cp-kafka:5.5.0
ports:
- 9092:9092
environment:
KAFKA_BROKER_ID: 1
KAFKA_ADVERTISED_HOST_NAME: kafka
LISTENERS: PLAINTEXT://206.189.178.228:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://206.189.178.228:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
networks:
- food_default
networks:
food_default:
external: true
这是服务配置此配置存在于其他服务中
version: '2'
services:
food-order-service:
image: altshiftcreative/food-app-order-service:v1.5
environment:
# - _JAVA_OPTIONS=-Xmx512m -Xms256m
- SPRING_PROFILES_ACTIVE=prod,swagger
- MANAGEMENT_METRICS_EXPORT_PROMETHEUS_ENABLED=false
- EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://admin:$${jhipster.registry.password}@jhipster-registry:8761/eureka
- SPRING_CLOUD_CONFIG_URI=http://admin:$${jhipster.registry.password}@jhipster-registry:8761/config
- SPRING_DATASOURCE_URL=jdbc:mysql://food-mysql:3306/food_db?useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&useLegacyDatetimeCode=false&serverTimezone=UTC&createD>
- SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_ISSUER_URI=https://shopbia.shop/auth/realms/jhipster
- SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_ID=internal
- SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_SECRET=internal
# - JHIPSTER_SLEEP=30 # gives time for other services to boot before the application
- KAFKA_BOOTSTRAPSERVERS=kafka:9092
ports:
- 8082:8082
networks:
- food_default
networks:
food_default:
external: true
解决方案
Kafka 不是 HTTP 协议,因此您的问题与此无关
你已经设置KAFKA_BOOTSTRAPSERVERS=kafka:9092
我没有改变任何关于 Kafka 的配置
我想你做到了。该 IP 地址不是任何默认值。要恢复到同一 Docker 网络中的预期行为,您需要设置
LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
不清楚您从哪里获取 IP 地址,但如果您想将 Docker 容器暴露给该子网中的外部网络,那么您将需要其他设置
推荐阅读
- c - 使用 read(fd, buf, sz) 创建我自己的 fgets() 函数
- angular - Visual Studio Community Edition 2019 和 AspNetCore 3.1 Angular 模板错误
- makefile - make 对表达式的计算与 shell 不同
- android - 如何删除流通中的调试应用程序,以便人们可以使用签名的 apk
- matlab - 在 16x16 的矩阵中显示所有 256 个强度级别
- python - Python:使用“X”和“O”打印字母“N”
- sql - 12c 中的 Oracle 日期格式 9999-06-15T00:00:00.000+0000
- postgresql - 使用 PostgreSQL 作为数据源在 AWS Quicksight 中运行自定义 SQL
- php - 从php中的纯字符串中检索日期
- c# - C# 按名称获取对象属性