Aug*_*ust 4 apache-kafka docker
我正在运行以下 docker compose:
version: '3'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- '2181:2181'
kafka:
image: wurstmeister/kafka:2.12-2.3.0
ports:
- "9094:9094"
environment:
KAFKA_ADVERTISED_HOST_NAME: $HOST
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: INSIDE://:9092,OUTSIDE://$HOST:9094
KAFKA_LISTENERS: INSIDE://:9092,OUTSIDE://:9094
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
# KAFKA_SOCKET_REQUEST_MAX_BYTES: 1347375956
volumes:
- 'kafka_vol:/var/run/docker.sock'
ui:
image: landoop/kafka-topics-ui
ports:
- "8000:8000"
environment:
KAFKA_REST_PROXY_URL: http://kafka:9092
PROXY: "true"
MAX_BYTES: 50000
LAZY_LOAD_TOPIC_META: "true"
PROXY_SKIP_VERIFY: "true"
volumes:
kafka_vol: {}
Run Code Online (Sandbox Code Playgroud)
服务器:
服务器是8GB RAM,当查看时docker stats,kafka和zookeeper加起来几乎不超过1G。
问题:
完成全新安装后,我尝试landoop/kafka-topics-ui在浏览器中打开,但是请求失败,并且我注意到在 docker compose 日志中显示了以下错误:
[2019-07-22 07:41:29,540] org.apache.kafka.common.network.InvalidReceiveException:无效接收(大小= 1195725856大于104857600)
当我进入 kafka 容器并运行时,发生了同样的错误curl http://localhost:9092/topics。完成全新安装后,我尝试landoop/kafka-topics-ui在浏览器中打开,但是请求失败,并且我注意到在 docker compose 日志中显示了以下错误:
[2019-07-22 07:41:29,540] org.apache.kafka.common.network.InvalidReceiveException:无效接收(大小= 1195725856大于104857600)
当我进入 kafka 容器并运行时,发生了同样的错误curl http://localhost:9092。是什么导致了这个问题?
您无法通过 HTTP 直接访问 Kafka。您收到的错误是因为您向 Kafka 发送了 HTTP 请求。错误消息中的大小1195725856是 HTTP 请求的前 4 个字节!
1195725856是一个可识别的值,它被GET解码为一个整数:
>>> struct.unpack("!I", struct.pack("!4s", "GET ".encode("UTF8")))
(1195725856,)
Run Code Online (Sandbox Code Playgroud)
为了使用landoop/kafka-topics-ui,您需要安装confluenceinc/kafka-rest代理,它在 Kafka 前面提供 HTTP 端点。README中提到了这一点:
浏览 Kafka 主题并了解集群上发生的情况。查找主题/查看主题元数据/浏览主题数据(kafka消息)/查看主题配置/下载数据。这是用于 confluenceinc/kafka-rest 代理的 Web 工具。
| 归档时间: |
|
| 查看次数: |
11905 次 |
| 最近记录: |