java - 支持为 Spring Cloud Stream 绑定(bind)中的每个消费者绑定(bind)定义 spring.json.key.type

标签 java spring apache-kafka apache-kafka-streams spring-cloud-stream

遵循 JsonSerdeExample 后我能够直接将主题中的数据消费到我的 Java 对象中。以下属性发挥了所有作用

 spring.json.key.default.type: com.xxxx.datamapper.domain.FormUUID
 spring.json.value.default.type: com.xxxx.datamapper.domain.FormData

但是,现在我想在单个 Spring Boot 应用程序中运行两个流监听器。为此,我需要为每个消费者绑定(bind)进行类似的配置。 spring cloud 支持这个吗?

到目前为止,对于第二个流,我必须使用字符串序列化器进行消费,然后使用对象映射器进行映射。这使得应用程序代码因不必要的转换而变得复杂。

最佳答案

该示例在绑定(bind)级别定义了 Serdes,您也​​可以在绑定(bind)级别设置它们

spring.cloud.stream.kafka.streams.bindings.foo.consumer.key-serde=
spring.cloud.stream.kafka.streams.bindings.foo.consumer.value-serde=

覆盖 Binder 级别的设置。

同样,您可以以相同的方式设置 Serdes 的属性。

spring.cloud.stream.kafka.streams.bindings.foo.consumer.configuration.spring.json...

您可以在绑定(bind)级别定义 Serde,也可以在绑定(bind)级别定义属性。

关于java - 支持为 Spring Cloud Stream 绑定(bind)中的每个消费者绑定(bind)定义 spring.json.key.type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61927106/

相关文章:

apache-kafka - 如何减少Kafka主题的分区数量?

python - 如何在Kafka中发布字典?

java - 在 Google App Engine 中设置 cookie 超时

java - 我的二分查找算法有问题吗?

java - getText() 方法不打印所有下拉值

spring - 为该 cookie 指定的域无效

spring - 了解所有实体通用的 Spring Data JPA 存储库

java - Spring MVC、Spring 安全 : Unable to load login template

java - Java 相当于 Python 的 reduce 函数是什么?

apache-kafka - 基于 Kafka 的网络中的多排序节点冗余