docker - Kafka、Docker-Compose、Bootstrap 代理断开连接
问题描述
我正在尝试使用 docker-compose 启动 kafka 服务。我用卡夫来摆脱动物园管理员。我正在做的只是为了发展和未来的目的。Kraft 应该可以在 docker 内部和外部访问。KRaft 应该在我的本地机器上的容器中运行,我只想从我的本地机器或 docker 映像本身内部访问它。我按照在 KRaft 部分下的示例在此处输入链接描述。我的 docker-compose.yml 是:
---
version: '2'
services:
broker:
image: confluentinc/cp-kafka:6.2.0
hostname: broker
container_name: broker
ports:
- "9092:9092"
- "9101:9101"
environment:
KAFKA_BROKER_ID: 1
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT'
KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092'
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_JMX_PORT: 9101
KAFKA_JMX_HOSTNAME: localhost
KAFKA_PROCESS_ROLES: 'broker,controller'
KAFKA_NODE_ID: 1
KAFKA_CONTROLLER_QUORUM_VOTERS: '1@broker:29093'
KAFKA_LISTENERS: 'PLAINTEXT://broker:29092,CONTROLLER://broker:29093,PLAINTEXT_HOST://localhost:9092'
KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT'
KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'
KAFKA_LOG_DIRS: '/tmp/kraft-combined-logs'
volumes:
- ./update_run.sh:/tmp/update_run.sh
command: "bash -c 'if [ ! -f /tmp/update_run.sh ]; then echo \"ERROR: Did you forget the update_run.sh file that came with this docker-compose.yml file?\" && exit 1 ; else /tmp/update_run.sh && /etc/confluent/docker/run ; fi'"
schema-registry:
image: confluentinc/cp-schema-registry:6.2.0
hostname: schema-registry
container_name: schema-registry
depends_on:
- broker
ports:
- "8081:8081"
environment:
SCHEMA_REGISTRY_HOST_NAME: schema-registry
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: 'broker:29092'
SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081
connect:
image: cnfldemos/kafka-connect-datagen:0.5.0-6.2.0
hostname: connect
container_name: connect
depends_on:
- broker
- schema-registry
ports:
- "8083:8083"
environment:
CONNECT_BOOTSTRAP_SERVERS: 'broker:29092'
CONNECT_REST_ADVERTISED_HOST_NAME: connect
CONNECT_REST_PORT: 8083
CONNECT_GROUP_ID: compose-connect-group
CONNECT_CONFIG_STORAGE_TOPIC: docker-connect-configs
CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1
CONNECT_OFFSET_FLUSH_INTERVAL_MS: 10000
CONNECT_OFFSET_STORAGE_TOPIC: docker-connect-offsets
CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1
CONNECT_STATUS_STORAGE_TOPIC: docker-connect-status
CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1
CONNECT_KEY_CONVERTER: org.apache.kafka.connect.storage.StringConverter
CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter
CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8081
CONNECT_PLUGIN_PATH: "/usr/share/java,/usr/share/confluent-hub-components"
CONNECT_LOG4J_LOGGERS: org.apache.zookeeper=ERROR,org.I0Itec.zkclient=ERROR,org.reflections=ERROR
rest-proxy:
image: confluentinc/cp-kafka-rest:6.2.0
depends_on:
- broker
- schema-registry
ports:
- 8082:8082
hostname: rest-proxy
container_name: rest-proxy
environment:
KAFKA_REST_HOST_NAME: rest-proxy
KAFKA_REST_BOOTSTRAP_SERVERS: 'broker:29092'
KAFKA_REST_LISTENERS: "http://0.0.0.0:8082"
KAFKA_REST_SCHEMA_REGISTRY_URL: 'http://schema-registry:8081'
然后,当我尝试在 docker 映像中启动 kafka-console-consumer 时,一切正常。但是,如果我使用以下命令在我的 Windows 机器上启动 kafka-console-consumer,我会断开连接。
kafka-console-consumer 命令:
.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic kraft-test
输出:
WARN [Consumer clientId=consumer-console-consumer-42932-1, groupId=console-consumer-42932] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
我尝试在这两个网站的帮助下自己修复它,但对我没有任何帮助。在此处输入链接描述并在此处输入链接描述
对我来说,一切看起来都不错,但也许我已经陷入了这个问题。
解决方案
推荐阅读
- javascript - Vuex突变后如何获取价值?
- regex - 正则表达式 - 为什么 ([ÆØÅæøåa-zA-Z0-9.-]+)$ 有效,但 ([a-zA-Z0-9.-ÆØÅæøå]+)$ 无效?
- sas - SAS 日期差异
- javascript - 切换到案例 2:
- html - 如何在输入值中包含图像
- android - 恢复片段在旋转时的先前状态和在后台堆栈中的位置
- android - 原因:条目中的空值:aaptFriendlyManifestOutputDirectory=null
- java - 如何使用移动设备的语言在 Tess4J 中设置语言?
- c++ - c++ - 模板类的友元运算符重载
- excel - Sumproduct 或 sumif 与替代和标准