问题描述
目前正在尝试通过 Kafka 客户端在 Micronaut Kafka 中使用多个序列化器和反序列化器。 配置示例(application-test.yml):
kafka:
consumers:
consumer-x:
value-deserializer: com.example.AvroDeserializer
key-deserializer: com.example.Deserializer
schema:
registry.url: mock://example.com
reflection: true
record.packages. com.example.packages
consumer-y:
value-deserializer: com.example.ByteArrayDeserializer
key-deserializer: com.example.Deserializer
producers:
producer-x:
value-serializer: com.example.AvroSerializer
key-serializer: com.example.Serializer
schema:
registry.url: mock://example.com
reflection: true
record.packages. com.example.packages
producer-y:
value-serializer: com.example.ByteArraySerializer
key-serializer: com.example.Serializer
serde 值仅针对生产者/消费者 -y 而不是生产者/消费者 -x 设置。它默认为: value.deserializer = class io.micronaut.configuration.kafka.serde.JsonSerde 当我使用以下配置时不会发生这种情况:
kafka:
value:
serializer: com.example.AvroSerializer
deserializer: com.example.AvroDeserializer
key:
serializer: com.example.Serializer
deserializer: com.example.Deserializer
schema:
registry.url: mock://example.com
reflection: true
record.packages: com.example.packages
有人知道为什么会这样吗?是模式注册表和记录包的缩进不对吗?
已尝试在不同级别添加架构数据,包括 kafka、消费者/生产者、特定组/客户、密钥。
还尝试使用camelCasing而不是用破折号分隔,即consumer-x到consumerX。
也试过使用
kafka:
consumers:
consumer-x:
value:
deserializer: com.example.AvroDeserializer
还尝试在消费者-x、消费者-y 前面使用“-”使其成为yml 中的列表。
很可能我遗漏了一个我没有测试过的组合,尽管必须有更好的方法来回答这个问题,而不是用尽所有可能的 yml 语法。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)