Нет константы перечисления org. apache .kafka.common.protocol.SecurityProtocol.CLIENT aws MSK - PullRequest
1 голос
/ 10 января 2020

Я пытаюсь запустить реестр схемы на EC2. Мой kafka работает на AWS.

Это мой файл свойств

listeners=http://0.0.0.0:8081
kafkastore.connection.url=z-3.***:2181,z-***:2181,z-**:2181
kafkastore.bootstrap.servers=PLAINTEXT://b-3.**:9092,PLAINTEXT://b-6.**:9092,PLAINTEXT://b-1.**:9092
kafkastore.topic=_schemas
debug=false

schema-registry-start /etc/schema-registry/schema-registry.properties &

Когда я запускаю это, я получаю ошибку ниже

kafka.common.KafkaException: Failed to parse the broker info from zookeeper: {"listener_security_protocol_map":{"CLIENT":"PLAINTEXT","CLIENT_SECURE":"SSL","REPLICATION":"PLAINTEXT","REPLICATION_SECURE":"SSL"},"endpoints"

Caused by: java.lang.IllegalArgumentException: No enum constant org.apache.kafka.common.protocol.SecurityProtocol.CLIENT

Я изменил это TSL, PLAINTEXT и без обоих, но все выдают ошибку. У меня также есть подключение от EC2 к MSK.

Apache Kafka version

2.2.1

confluent

sudo rpm --import http://packages.confluent.io/deb/3.1/archive.key

, даже если я не упоминаю URL брокера, тогда я также получить ту же ошибку

Обновление вопроса на основе ответа

, если не указан URL-адрес соединения

[ec2-user@ip-10-97-54-99 ~]$ [2020-01-11 03:46:29,418] ERROR Server died unexpectedly:  (io.confluent.kafka.schemaregistry.rest.SchemaRegistryMain:51)
io.confluent.common.config.ConfigException: Missing required configuration "kafkastore.connection.url" which has no default value.
        at io.confluent.common.config.ConfigDef.parse(ConfigDef.java:241)
        at io.confluent.common.config.AbstractConfig.<init>(AbstractConfig.java:76)
        at io.confluent.rest.RestConfig.<init>(RestConfig.java:299)
        at io.confluent.kafka.schemaregistry.rest.SchemaRegistryConfig.<init>(SchemaRegistryConfig.java:358)
        at io.confluent.kafka.schemaregistry.rest.SchemaRegistryConfig.<init>(SchemaRegistryConfig.java:354)
        at io.confluent.kafka.schemaregistry.rest.SchemaRegistryMain.main(SchemaRegistryMain.java:41)

Упоминание CLIENT:// или CLIENT_SECURE:// также выдает ту же ошибку.

и MSK также предоставляет Plaintext. Я могу видеть это в информации о клиенте

Ответы [ 2 ]

0 голосов
/ 12 января 2020

Я думаю, что проблема с вашей версией. Я также столкнулся с той же проблемой после того, как я установил вручную, и это работало для меня.

это мой точный шаг установки и шаг запуска реестра схемы

sudo yum install java-1.8.0
curl -O http://packages.confluent.io/archive/5.3/confluent-5.3.2-2.12.tar.gz
tar xzf confluent-5.3.2-2.12.tar.gz
cd confluent-5.3.2/etc/schema-registry/

/home/ec2-user/confluent-5.3.2/bin/schema-registry-start /home/ec2-user/confluent-5.3.2/etc/schema-registry/schema-registry.properties
0 голосов
/ 10 января 2020

Если вы сконфигурируете kafkastore.bootstrap.servers, то вам нужно удалить строку соединения Zookeeper из реестра схем.

Первичные выборы на основе Kafka выбираются, когда <kafkastore.connection.url> равно не настроено и имеет брокеров Kafka bootstrap <kafkastore.bootstrap.servers>, указанных

Попробуйте сначала просто удалить это.

Также актуально - https://github.com/confluentinc/schema-registry/issues?utf8=%E2%9C%93&q=is%3Aissue+MSK+


Непонятно, какую версию реестра вы пытались установить, но MSK не имеет клиента PLAINTEXT Строка соединения, как показано listener_security_protocol_map.

. Вам нужно указать другое соединение, например CLIENT:// или CLIENT_SECURE:// для действующего протокола прослушивателя, предполагая, что PLAINTEXT по-прежнему не работает

...