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

找不到主题融合 kafka 架构注册表error_code“:40401,”消息

陶烨赫
2023-03-14

我使用的是Kafka confluent schema registry docker镜像,当我在本地测试它时(使用本地安装的Kafka,这可以按预期工作,但当我尝试将其用于远程Kafka集群时,我遇到了一个错误:

< code>{"error_code":40401," message ":"未找到主题。io . confluent . rest . exceptions . restnotfoundexception:找不到主题。\ nio . confluent . rest . exceptions . restnotfoundexception:找不到主题。\ n \ tat io . confluent . Kafka . schema registry . rest . exceptions . errors . subjectnotfoundexception(errors . Java:51)\ n \ tat io . confluent . Kafka . schema registry . rest . resources . subjectversions resource . list versions(subjectversions resource . Java:157)\ n \ tat sun . reflect . nativemethodaccessorimpl . invoke 0(Native方法)\ tat sun . reflect . nativemethodaccessorimpl . invoke(nativemethodaccessorimpl . Java:67

下面是我用它来运行docker的命令

docker run  --network host -p 8081:8081        -e  SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS=first_broker:9092,second_broker:9092,third_broker:9092    -e SCHEMA_REGISTRY_HOST_NAME=0.0.0.0     -e SCHEMA_REGISTRY_LISTENERS=http://0.0.0.0:8081     -e SCHEMA_REGISTRY_DEBUG=true confluentinc/cp-schema-registry:latest

我得到的错误堆栈是:

    Producer clientId=producer-1] Updated cluster metadata updateVersion 2 to MetadataCache{cluster=Cluster(id = dIU-fffyfHXRDeVgZA4fud_eBw, nodes = [first_broker:9092 (id: 2 rack: subnret-0ecf514e9ghg94d5197a7), second_broker:9092 (id: 1 rack: subrnet-0befbedzd392e5497137), third_broker:9092 (id: 3 rack: subnret-0rrc00cc1dbd14c0350)], partitions = [Partition(topic = topics, partition = 0, leader = 1, replicas = [1,3,2], isr = [1,3,2], offlineReplicas = [])], controller = first_broker:9092 (id: 3 rack: subnret-0c0rr0cc1dbd14c0350))}
Sending POST with input {"schema":"\"string\""} to http://0.0.0.0:8081/subjects/topicName-value/versions
org.apache.kafka.common.errors.SerializationException: Error serializing Avro message
Caused by: java.net.SocketException: Unexpected end of file from server
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:851)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:8

我注意到在远程Kafka集群中,我创建了_schemas主题,但是当我使用消费者控制台从这个主题_shemas读取数据时,我得到了以下结果:

{"keytype":"NOOP","magic":0}-null
{"keytype":"NOOP","magic":0}-null
{"keytype":"NOOP","magic":0}-null
{"keytype":"NOOP","magic":0}-null
{"keytype":"NOOP","magic":0}-null
{"keytype":"NOOP","magic":0}-null
{"keytype":"NOOP","magic":0}-null
{"keytype":"NOOP","magic":0}-null
{"keytype":"NOOP","magic":0}-null
{"keytype":"NOOP","magic":0}-null
{"keytype":"NOOP","magic":0}-null
{"keytype":"NOOP","magic":0}-null
{"keytype":"NOOP","magic":0}-null

知道如何解决这个问题吗?

共有1个答案

杨腾
2023-03-14

SCHEMA_REGISTRY_HOST_NAME应该是可解析的主机名,而不是0.0.0.0

同样,不要在您的生成器代码中使用< code > http://0 . 0 . 0:8081 。

侦听器是绑定地址,但也可以省略它们,只要您转发了端口,并且您删除了 --network host

您可以忽略注册表中的NOOP消息(它会在启动时吐出其中两条消息,以找到主题的结尾)

 类似资料:
  • 嘿,我想将ConFluent模式注册表与Avro Serializers一起使用:留档现在基本上是说:不要为多个不同的主题使用相同的模式 谁能解释一下原因吗?我重新搜索了源代码,它基本上将模式存储在Kafka主题中,如下所示(topicname,magicbytes,version- 因此,除了冗余之外,我看不到多次使用模式的问题?

  • 我已经在Ubuntu 16.04机器上安装了合流平台,并初步配置了zookeeper、Kafka和ksql,启动了合流平台。我可以看到下面的消息。 现在一切都启动了,当我检查融合平台的状态时,我观察到Schema注册表,连接 我已经检查了schema注册表的日志,找到了下面的日志。

  • 对于跨网络汇流平台,我们有一个kafka集群在Premise上,另一个在AWS上,其中数据使用mirror Maker从on-prem复制到AWS。这两个集群都独立于它们自己的模式注册表、rest代理和Connect,这两个集群都有不同的生产者和消费者集,并且选择的主题在集群之间被镜像。 部署schema-registry的最佳实践应该是什么?我们是否应该在on-prem和AWS上有一个主服务器(

  • 我很困惑,如果模式注册中心不能演化模式升级/更改,那么我为什么要使用模式注册中心,或者说我为什么要使用AVRO?

  • 我正在使用ConFluent托管的Kafka集群和Schema注册表服务。我可以管理连接汇合云kafka集群,将以下属性添加到生产者配置(Scala) 但是不能连接到汇合云模式注册表。汇合云模式注册表提供了访问的键和秘密,但我不知道如何设置键和秘密。是否有任何配置设置用于访问汇合云模式注册表。

  • 合流模式注册表当前支持json模式。spring kafka是否支持json模式? 使用此配置,带有spring kafka的Avro运行良好 但如何配置spring kafka以使用json模式汇合模式注册表?