Kafka Consumer Deserializer 是否必须匹配 Producer Serializer?

Does Kafka Consumer Deserializer have to match Producer Serializer?

消费者使用的反序列化器是否必须与生产者使用的序列化器相匹配?

如果生产者将 JSON 值添加到消息中,那么消费者是否可以选择使用 ByteArrayDeserializerorStringDeserializeror JsonDeserializer 而不管生产者使用或执行哪个序列化程序它必须匹配吗?

如果他们必须匹配,使用不同的结果是什么?这会导致异常,没有数据或其他什么吗?

必须兼容,不一定是配对

ByteArrayDeserializer 可以消耗任何东西。

StringDeserializer 采用 UTF8 编码的字符串,并可能在使用时将其他类型转换为字符串

JsonDeserializer 将尝试解析消息并在无效时失败 JSON

如果您使用 Avro、Protobuf、Msgpack 等二进制格式的消费者,那么它们也会尝试解析消息,如果它们无法识别各自的容器,将会失败