0

我刚开始使用 Kafka,想用它kafka-topics-ui来查看我拥有的各种主题。

docker-compomse.yml下图用于快速设置zookeeper, kafka, kafka-topics-ui, 包括schema-registryrest-proxy

问题:在加载kafka-topics-ui网站时localhost:8000,当我们点击其中一个主题时,加载进度条会不停地动画,并且没有出现主题的消息!

在查看浏览器 JS 控制台时,我们看到执行 POST 请求时出现HTTP 415 Unsupported Media Type错误:

来自 JS 控制台的错误

angular.js:12587 POST http://localhost:8000/api/kafka-rest-proxy/consumers/kafka_topics_ui_avro_2018-12-02-03-10-39-256 415 (Unsupported Media Type)
(anonymous) @ angular.js:12587
p @ angular.js:12332
(anonymous) @ angular.js:12084
(anonymous) @ angular.js:16832
$digest @ angular.js:17971
$apply @ angular.js:18269
(anonymous) @ angular.js:26999
hg @ angular.js:3734
d @ angular.js:3722

angular.js:14525 HTTP ERROR:  Failed at method [POST] [/api/kafka-rest-proxy/consumers/kafka_topics_ui_avro_2018-12-02-03-10-39-256] with error: 
{"data":{"error_code":415,"message":"HTTP 415 Unsupported Media Type"},"status":415,"config":{"method":"POST","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"/api/kafka-rest-proxy/consumers/kafka_topics_ui_avro_2018-12-02-03-10-39-256","data":"{\"name\": \"kafka-topics-ui-avro\", \"format\": \"avro\", \"auto.offset.reset\": \"earliest\", \"auto.commit.enable\": \"false\"}","dataType":"json","headers":{"Content-Type":"application/vnd.kafka.v2+json","Accept":"application/json, text/plain, */*"}},"statusText":"Unsupported Media Type"} 
DATA SENT: {"name": "kafka-topics-ui-avro", "format": "avro", "auto.offset.reset": "earliest", "auto.commit.enable": "false"}

出了什么问题,我们该如何解决?

码头工人-compomse.yml

version: '3'
services:

zookeeper:
    image: wurstmeister/zookeeper
    ports:
    - "2181:2181"

kafka:
    image: wurstmeister/kafka
    ports:
    - "9092:9092"
    - "9999:9999"
    environment:
    KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
    KAFKA_CREATE_TOPICS: "orders:1:1,trades:1:1"
    KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    JMX_PORT: 9999
    depends_on:
    - zookeeper

schema-registry:
    image: confluent/schema-registry:latest
    ports:
    - 8081:8081
    links:
    - zookeeper
    - kafka
    depends_on:
    - zookeeper
    - kafka

rest-proxy:
    image: confluent/rest-proxy:latest
    ports:
    - 8082:8082
    links:
    - zookeeper
    - kafka
    - schema-registry
    depends_on:
    - zookeeper
    - kafka
    - schema-registry

kafka-topics-ui:
    image: landoop/kafka-topics-ui
    environment:
    # yes localhost as its a client side app outsite of the docker network on your host
    - KAFKA_REST_PROXY_URL=http://rest-proxy:8082
    - PROXY=true
    ports:
    - 8000:8000
    links:
    - rest-proxy
    depends_on:
    - rest-proxy
4

1 回答 1

1

我不确定错误/解决方案,但我猜它与 CORS 相关,或者您正在使用一些旧的confluent/docker 图像......

无论如何,我确实有一个建议给你。

Landoop 提供了一个名为的一体化封装容器fast-data-dev,其中包括您想要的所有这些组件(加上一些)

在 Linux 主机上,

docker run --rm --net=host landoop/fast-data-dev

而已。访问http://localhost:3030进入 fast-data-dev 环境

更多信息(例如,如果您没有在 Linux 上运行):https ://github.com/Landoop/fast-data-dev

于 2018-12-02T10:50:20.457 回答