当前位置: 首页 > 知识库问答 >
问题:

没有枚举常量org.apache.kafka.common.protocol.SecurityProtocol.CLIENTaws MSK

段超
2023-03-14

我正在尝试在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,明文和没有两者,但都是抛出错误。我也有从 EC2 到 MSK 的连接。

阿帕奇Kafka版

2.2.1

汇合

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

即使我没有提到经纪人网址,我也会得到同样的错误

根据答案更新问题

当没有提到连接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)

提到< code>CLIENT://或< code>CLIENT_SECURE://也会抛出相同的错误。

MSK也提供<code>明文

共有2个答案

穆文斌
2023-03-14

如果您配置<code>kafkastore.bootstrap。服务器,则需要从模式注册表中删除Zookeeper连接字符串。

基于Kafka的初选是在以下情况下选择的

试着先移除它。

也是相关的-https://github.com/confluentinc/schema-registry/issues?utf8=

不清楚你试图安装哪个版本的注册表,但是MSK没有任何明文客户端连接字符串,如< code > listener _ security _ protocol _ map 所示。

假设明文仍然不起作用,您需要为有效的侦听器协议指定不同的连接,例如< code>CLIENT://或< code>CLIENT_SECURE://

云焱
2023-03-14

我认为问题在于你的版本。在我手动安装之后,我也遇到了同样的问题,它对我很有效。

这是我的确切安装步骤和模式注册表开始步骤

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
 类似资料:
  • 这里Java初学者, 我试图用Spring定义我的模型来访问Mongodb数据库中的数据。 我想将性别定义为一个枚举,在数据库中,值存储为字符串:或 但我得到以下错误: 这是我的图POJO: 这是我的性别枚举: 这就是我尝试访问它的方式: @Override public void run(String…args)抛出异常{Optional chronos=figureposition.findB

  • 主要内容:声明常量,实例,VB.Net打印和显示常量,声明枚举,实例常量指的是程序在执行过程中可能不会改变的固定值。 这些固定值也被称为文字。 常量可以是任何基本数据类型,如整数常量,浮点常量,字符常量或字符串文字。 也有枚举常量。 常量的处理方式与常规变量一样,只是它们的值在定义之后无法修改。 枚举是一组命名的整数常量。 声明常量 在VB.Net中,使用语句声明常量。 语句用于模块,类,结构,过程或块级别,以代替文字值。 语句的语法是: 其中, attribut

  • 问题内容: 通过阅读SCJP书籍,我在第1章“自测”中发现了类似的内容: 注意:代码编译正常。我不明白的是为什么我们可以从变量访问DOG,CAT或FISH常量。我认为(并且也写在书中)DOG,FISH,CAT是常量,其实现方式类似于。 所以,如果它们确实是静态的,为什么我们可以从中访问它们呢?最后一行是我熟悉的方式。 问题答案: 写作 和写作一样。也就是说,编译器将用其编译时类型Animal替换变

  • 问题内容: 我正在查看公司其他部门维护的一些Java代码,顺便说一下,这是一些前C和C ++开发人员所维护的。普遍存在的一件事是使用静态整数常量,例如 除了缺少“最终”限定符外,这种代码也让我有些不安。我本来希望看到的是,从学校开始主要接受Java的培训,这会更像 但是,论点使我失望。为什么要比后者更好呢? 问题答案: 为什么要比后者更好呢? 这样做要好得多,因为它可以为您提供类型安全性并具有自记

  • 枚举(enum)是定义一组命名常量的机制,用这种方式定义的常量被称作枚举常量 注:枚举常量的数据类型是整数 使用方法: 下面我们以文本语音转换为例子,说明一下枚举常量的使用方法。 首先我们在窗体上放入语音识别控件,按钮,通用对话框这些基本控件,来制作一个简单的语音文本朗读程序。 1 如果您使用过语音识别控件,就应该知道,使用这个控件的第一步就是先创建它,而创建命令的两个参数就是枚举常量,我们可以看

  • 问题内容: 我无法使用从常量中获取的枚举作为注释中的参数。我收到此编译错误:“注释属性[attribute]的值必须是枚举常量表达式”。 这是枚举代码的简化版本: 对于注释: 和班级: 该错误仅在方法B的“ theEnum = MYENUM_CONSTANT”中显示。字符串和int常量对于编译器是可以的,但Enum常量不是,即使它的值与methodA上的值完全相同。在我看来,这是编译器中缺少的功能