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

仅在一个消费微服务上无法AVRO序列化

籍靖
2023-03-14

我有五个Kafka消费服务和一个Kafka生产服务。我在每个Java消费微服务的消费者库中推出了一个新的avro模式。我还没有做出制片人方面的改变。但其中一个消费服务无法序列化任何内容,其他四个工作正常。

我有个例外

java.lang.RuntimeException: java.lang.ClassNotFoundException: com.sun.ws.rs.ext.RuntimeDelegateImpl
    at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:122)
    at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:91)
    at javax.ws.rs.core.UriBuilder.newInstance(UriBuilder.java:69)
    at javax.ws.rs.core.UriBuilder.fromPath(UriBuilder.java:111)
    at io.confluent.kafka.schemaregistry.client.rest.RestService.getId(RestService.java:656)
    at io.confluent.kafka.schemaregistry.client.rest.RestService.getId(RestService.java:642)
    at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.getSchemaByIdFromRegistry(CachedSchemaRegistryClient.java:217)
    at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.getSchemaBySubjectAndId(CachedSchemaRegistryClient.java:291)
    at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.getSchemaById(CachedSchemaRegistryClient.java:276)
    at io.confluent.kafka.serializers.AbstractKafkaAvroDeserializer$DeserializationContext.schemaFromRegistry(AbstractKafkaAvroDeserializer.java:273)
    at io.confluent.kafka.serializers.AbstractKafkaAvroDeserializer.deserialize(AbstractKafkaAvroDeserializer.java:97)
    at io.confluent.kafka.serializers.AbstractKafkaAvroDeserializer.deserialize(AbstractKafkaAvroDeserializer.java:87)
    at io.confluent.kafka.serializers.KafkaAvroDeserializer.deserialize(KafkaAvroDeserializer.java:62)

在生产者和消费者方面发生变化的一些事情是kafka-avro-序列化器的版本到6.0.0
kafka-客户端到2.0.0

因此,到达该消费者的记录为空,并且在我们的配置中阻塞了我们的队列,我们不推进手动偏移。

希望你能帮上忙。

共有1个答案

尉迟彬
2023-03-14

您需要包括jersey客户端库。

您可以手动或根据您的构建工具添加. jar

Maven

<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
    <version>3.0.0</version>
</dependency>

Gradle

compile group: 'org.glassfish.jersey.core', name: 'jersey-client', version: '3.0.0'

SBT

libraryDependencies += "org.glassfish.jersey.core" % "jersey-client" % "3.0.0"

...

(...)

 类似资料:
  • 我有一个这样的转变: Pageview是一种:Pageview。JAVA 我在Spark上注册了这样的课程: 异常线程"main"org.apache.spark.SparkExctive:任务不能在org.apache.spark.util.ClosureCleaner$. ensureSerializable(ClosureCleaner.scala:166)在org.apache.spark

  • tl;博士:“我如何通过一堆异步、无序的微服务推送消息,并知道该消息何时通过每个微服务?” 我正在努力为特定的微服务体系结构找到合适的消息传递系统/协议。这不是一个“哪个是最好的”问题,而是一个关于我的设计模式/协议选项的问题。 我在开始队列上有一条消息。假设带有序列化JSON的RabbitMQ消息 我需要该消息通过任意数量的微服务 这些微服务中的每一个都是长时间运行的,必须是独立的,并且可以用多

  • 当所有的经纪人都起来的时候,一切都是好的。但是,如果我先杀死(按开始顺序),代理消息会被发送到代理,但使用者不能接收到任何消息,消息不会丢失。启动该代理后,使用者立即接收消息。 关闭broker实例后的使用者日志: 再次启动丢失的代理后的使用者日志: 谢谢

  • 我有一个简单的spring引导的微服务(用户服务)和一个spring引导的网关服务(网关-服务器),使用Zuul设置到Eureka服务器(发现服务)注册。向用户-服务发送请求直接起作用,并且所有服务都成功地注册到eureka服务器。当我向网关服务器发送请求时,我会得到一个转发错误,原因是“com.netflix.client.clientException:Load balancer没有用于客户端

  • 我有两个组id相同的消费者服务器订阅了相同的主题。kafka服务器仅使用一个分区运行。据我所知,消息应该在这两个消费者服务器中随机使用。但现在似乎总是同一个消费者服务器A消费消息,另一个不消费消息。如果我停止消费者服务器A,另一个将正常工作。我所期望的是,他们可以随机消费信息。