схема реестра docker от слияния - PullRequest
0 голосов
/ 19 февраля 2020

Я хочу использовать реестр схемы docker (изображение, принадлежащее confluent) с моей Kafka с открытым исходным кодом, которую я установил локально на моем P C.

Я использую следующую команду для запуска образа:

docker run -p 8081:8081  \
    -e  SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS=PLAINTEXT://127.0.0.1:9092 \
    -e SCHEMA_REGISTRY_LISTENERS=http://0.0.0.0:8081 \
    -e SCHEMA_REGISTRY_DEBUG=true confluentinc/cp-schema-registry:latest

, но я получаю следующие ошибки подключения:

[kafka-admin-client-thread | adminclient-1] WARN org.apache.kafka.clients.NetworkClient - [AdminClient clientId=adminclient-1] Connection to node -1 (/127.0.0.1:9092) could not be established. Broker may not be available.
[kafka-admin-client-thread | adminclient-1] WARN org.apache.kafka.clients.NetworkClient - [AdminClient clientId=adminclient-1] Connection to node -1 (/127.0.0.1:9092) could not be established. Broker may not be available.
[main] ERROR io.confluent.admin.utils.ClusterStatus - Error while getting broker list.
java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment.
    at org.apache.kafka.common.internals.KafkaFutureImpl.wrapAndThrow(KafkaFutureImpl.java:45)
    at org.apache.kafka.common.internals.KafkaFutureImpl.access$000(KafkaFutureImpl.java:32)
    at org.apache.kafka.common.internals.KafkaFutureImpl$SingleWaiter.await(KafkaFutureImpl.java:89)
    at org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:260)
    at io.confluent.admin.utils.ClusterStatus.isKafkaReady(ClusterStatus.java:149)
    at io.confluent.admin.utils.cli.KafkaReadyCommand.main(KafkaReadyCommand.java:150)
Caused by: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment.
[main] INFO io.confluent.admin.utils.ClusterStatus - Expected 1 brokers but found only 0. Trying to query Kafka for metadata again ...

У меня установлен Kafka на моем компьютере локальный. Любая идея, чтобы решить это, пожалуйста?

1 Ответ

0 голосов
/ 19 февраля 2020

У меня на локальном хосте установлена ​​Kafka

Как уже отмечалось, localhost неясно, когда вы на самом деле используете несколько машин (одну физическую и хотя бы одну виртуальную)

Вам необходимо использовать host.docker.internal:9092

https://docs.docker.com/docker-for-windows/networking/ (удалено, поскольку хост не windows)

На Linux хост, вам нужно использовать сетевой режим хоста

https://docs.docker.com/network/host/

Хотя, реально, запустить Kafka в контейнере было бы проще для соединения двух

...