Akka 使反应式卡夫卡与合流模式注册表Avro模式一起工作

Akka 使反应式卡夫卡与合流模式注册表Avro模式一起工作,akka,apache-kafka,avro,reactive,Akka,Apache Kafka,Avro,Reactive,如何使反应式Kafka()与合流模式注册表Avro模式一起工作?以下是我的示例代码: def create(groupId:String)(隐式系统:ActorSystem):源[ConsumerMessage.CommittableMessage[String,Array[Byte]],Consumer.Control]={ val consumerSettings=consumerSettings(系统、新的StringDeserializer、新的ByteArraydSerializer

如何使反应式Kafka()与合流模式注册表Avro模式一起工作?以下是我的示例代码:

def create(groupId:String)(隐式系统:ActorSystem):源[ConsumerMessage.CommittableMessage[String,Array[Byte]],Consumer.Control]={
val consumerSettings=consumerSettings(系统、新的StringDeserializer、新的ByteArraydSerializer)
.带引导服务器(引导)
.withGroupId(groupId)
.withProperty(ConsumerConfig.AUTO\u OFFSET\u RESET\u CONFIG,“最早”)
.withProperty(“schema.registry.url”,schemaRegistryUrl)
.withProperty(ConsumerConfig.KEY\u反序列化程序\u类\u配置,classOf[String].getName)
.withProperty(ConsumerConfig.VALUE\反序列化程序\类\配置,类[KafkaAvroDeserializer].getName)
.withProperty(kafkaavroderializerconfig.SPECIFIC\u AVRO\u READER\u CONFIG,“true”)
Consumer.CommitteableSource(consumerSettings,Subscriptions.topics(createDataSetJobRequestTopic))

}
您只需将使用者配置为使用汇合反序列化器:
io.Confluent.kafka.serializers.KafkaAvroDeserializer.class

设置以下属性:

  • ConsumerConfig.KEY\u反序列化程序\u CLASS\u配置
  • 消费者配置值\反序列化器\类\配置
此外,您必须添加属性“schema.registry.url”,以便指定至少一个指向您的schema注册表实例的地址

最后,您必须将以下依赖项添加到项目中:

            <dependency>
            <groupId>io.confluent</groupId>
            <artifactId>kafka-avro-serializer</artifactId>
            <version>${io.confluent.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

合流的

谢谢,我知道如何使用schema registry使用kafka avro消息,我问的问题是如何将其与反应式kafka一起使用。它需要像上面粘贴的代码一样首先构造consumerSettings。我不知道是否可以直接获取Source[ConsumerMessage.CommitteableMessage[String,AvroClass],因为KafkaavrodeserialIzer不是泛型的。否则,我获取了CommitteableMessage[String,Object]然后将其转换到特定的一个?嗨,你能解决这个问题吗。我遇到了通过akka streams kafka反序列化kafka消息的确切问题。它返回一个我无法转换为我的类型的对象。似乎其他人没有修复和报告此问题。