Ошибка при получении сообщений темы в kafka-themes-ui (HTTP 415 Unsupported Media Type) - PullRequest
0 голосов
/ 02 декабря 2018

Я только начал использовать Kafka и хочу использовать kafka-topics-ui, чтобы просмотреть различные темы, которые у меня есть.

docker-compomse.yml, показанный ниже, используется для быстрой настройки zookeeper, kafka, kafka-topics-ui, включая schema-registry и rest-proxy.

Проблема: При загрузке сайта kafka-topics-ui на localhost:8000, когда мы нажимаем на одиниз тем, индикатор выполнения загрузки анимируется без остановки, и ни одно из сообщений темы не появляется!

При просмотре консоли JS браузера мы видим, что HTTP 415 неподдерживаемый тип носителя ошибка при выполнении запроса POST:

Ошибки из консоли 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"}

Что пошло не так и как мы можем это исправить?

docker-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

1 Ответ

0 голосов
/ 02 декабря 2018

Я не уверен насчет ошибки / решения, но я предполагаю, что это связано с CORS, или вы используете старые confluent/ образы докеров ...

В любом случае, у меня естьпредложение для вас.

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

...