[英]Consume String and JSON message from same kafka topic - issue with deserialization
字符串消費者正在使用 JSON 消息。 我的產品發送兩種類型的消息字符串和序列化 JSON
@KafkaListener(topics = "${kafka.topic}", groupId = "${kafka.group-id}", containerFactory = "${kafka.string-listener-container-factory}")
public void consume(@NotNull ConsumerRecord<String, String> cr, @Payload String payload) {
log.debug("Received asset id: {}, with key: {}, Partition: {}, Offset: {} ", payload, cr.key(), cr.partition(),
cr.offset());
}
@KafkaListener(topics = "${kafka.topic}", groupId = "${kafka.group-id}", containerFactory = "${kafka.json-listener-container-factory}")
public void consumeAssetEvent(@NotNull ConsumerRecord<String, Event> cr, @Payload Event payload) {
log.debug("Received asset id: {}, with key: {}, Partition: {}, Offset: {} ", payload, cr.key(), cr.partition(),
cr.offset());
}
消費者方我有兩個消費者 1. 監聽字符串消息 2. 監聽 json 並反序列化為對象
甚至 json 消息也被 String 偵聽器使用。
消費者中沒有過濾器功能可以根據您設置的 Serde(例如 string 、 json 等)區分消息。 當生產者發送消息時,它會在 kafka 主題中轉換為 byte[]。 然后這個 byte[] 被消費者反序列化設置反序列化。
所以沒有默認的方式來過濾字符串消息到字符串消費者和 json 到 json 消費者。 創建接收所有數據的偵聽器並檢查它是否為 json 或更改字符串和 json 的主題(將字符串發送到一個主題,將 json 發送到另一個主題並相應地使用)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.