Spring Cloud Stream – 为各个消费者/生产者指定序列化器/反序列化器

huangapple go评论81阅读模式
英文:

Spring Cloud Stream - Give Serdes to Individual Consumers/Producers

问题

我正在尝试在每个消费者上单独放置Serdes,而不是全部放置。例如,这会将Avro Deserializer 添加到我应用程序中的所有消费者。我只想在一个消费者上使用它。

spring.cloud.stream.kafka.binder.consumerProperties.value.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer

如果我像这样做,它可以工作。

spring.cloud.stream.bindings.scheduler-in-from-external-event.content-type=application/*+avro

但似乎没有一种方法可以为单个消费者/生产者指定Serde,即

spring.cloud.stream.kafka.binder.scheduler-in-from-external-event.consumer.configuration.key.deserializer=org.apache.kafka.common.serialization.StringDeserializer

spring.cloud.stream.kafka.binder.scheduler-in-from-external-event.consumer.configuration.value.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer

这种方法不起作用,我是否缺少依赖项,还是有人可以指导我在属性文件中为单个生产者/消费者指定Serde的方法?

英文:

I am trying to put individual Serdes on each of my consumers, not all of them. For instance this adds Avro Deserializer to all consumers in my application. I only want it on one consumer

spring.cloud.stream.kafka.binder.consumerProperties.value.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer

If I do something like this it works

spring.cloud.stream.bindings.scheduler-in-from-external-event.content-type=application/*+avro

but there doesn't seem to be a way to specify a Serde for a single consumer/producer, i.e.

spring.cloud.stream.kafka.binder.scheduler-in-from-external-event.consumer.configuration.key.deserializer=org.apache.kafka.common.serialization.StringDeserializer

spring.cloud.stream.kafka.binder.scheduler-in-from-external-event.consumer.configuration.value.deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer

this doesn't work am I missing a dependency or can someone point me in the direction of specifying a serde for a single producer/consumer in my properties file?

答案1

得分: 1

串行器(Serdes)在流特定绑定属性 ...kafka.streams.bindings... 上进行了指定。

使用如下配置:

spring.cloud.stream.kafka.streams.bindings.scheduler-in-from-external-event.consumer.key-serde=...
spring.cloud.stream.kafka.streams.bindings.scheduler-in-from-external-event.consumer.value-serde=...

文档链接:https://docs.spring.io/spring-cloud-stream-binder-kafka/docs/3.0.8.RELEASE/reference/html/spring-cloud-stream-binder-kafka.html#_kafka_streams_consumer_properties

英文:

The Serdes are specified on streams-specific binding properties ...kafka.streams.bindings....

Use

spring.cloud.stream.kafka.streams.bindings.scheduler-in-from-external-event.consumer.key-serde=...
spring.cloud.stream.kafka.streams.bindings.scheduler-in-from-external-event.consumer.value-serde=...

Docs here: https://docs.spring.io/spring-cloud-stream-binder-kafka/docs/3.0.8.RELEASE/reference/html/spring-cloud-stream-binder-kafka.html#_kafka_streams_consumer_properties

huangapple
  • 本文由 发表于 2020年10月28日 01:22:54
  • 转载请务必保留本文链接:https://go.coder-hub.com/64559728.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定