对avro对象序列化和用例的混淆

ia2d9nvy  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(276)

我想我没有掌握Kafka的一些基本概念,所以我希望斯塔克能帮上忙。
我一直在努力学习Kafka与 Spring 开机以下git回购在这里:
我知道如果没有avro,如何从一个微服务中获取java类,将其发送给kafka,并在另一个微服务中使用/序列化它……但是我讨厌这个想法。因为这意味着我必须在另一个微服务上有一个相同的类,比如包的位置/名称等
总的来说,我有两个问题。
我想了解如何在springboot微服务之间共享消息,并将它们Map到类,而不将所述类从一个服务复制到另一个服务
我希望能够从我的SpringKafka侦听器中使用从另一种语言(比如c)创建的消息#
我现在所在的位置是,上面repo中的avro示例已经启动,并与本地kafka和schema注册表示例一起运行。
但是,如果我创建一个重复的类并将其称为usertest(例如),并使其与此处使用的用户类相同,则会得到如下stacktraces:

Caused by: org.springframework.messaging.converter.MessageConversionException: Cannot convert from [io.confluent.developer.User] to [io.confluent.developer.kafkaworkshop.streams.User] for GenericMessage [payload={"name": "vik", "age": 33}, headers={kafka_offset=6, kafka_consumer=org.apache.kafka.clients.consumer.KafkaConsumer@54200a0e, kafka_timestampType=CREATE_TIME, kafka_receivedMessageKey=vik, kafka_receivedPartitionId=1, kafka_receivedTopic=users12, kafka_receivedTimestamp=1611278455840, kafka_groupId=simple-consumer}]

我是不是错过了一些特别基本的东西?我认为,一旦消息以avro格式发送,它就可以被使用并Map到另一个具有相同字段的对象……这样,如果对象是用c#创建的,spring服务就可以解释它了吗?
如果有人能帮我那就太好了。。。。
谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题