簡體   English   中英

如何使用 Header 從一條 Kafka 消息中獲取多個對象

[英]How to get multiple objects from one Kafka message using Header

我想從一條消息(來自同一主題)中反序列化不同的對象,並根據 object 類型將其保存/更新到數據庫中的相應表。 正如 Gary 在這里提到的,我可以使用標題來提供我的 object 必須反序列化的類型的信息。 你能提供如何實現這一目標的例子嗎?

請參閱此處的示例 02。

樣品 2

這個示例演示了一個簡單的生產者和一個多方法的消費者; 生產者發送Foo1Bar1類型的對象,消費者接收Foo2Bar2類型的對象(對象具有相同的字段foo )。

生產者使用JsonSerializer 消費者使用ByteArrayDeserializer以及ByteArrayJsonMessageConverter ,后者轉換為偵聽器方法參數的所需類型。 在這種情況下我們無法推斷類型(因為類型用於選擇要調用的方法)。 因此,我們在生產者和消費者端配置類型映射。 請參閱生產者端的application.yml和消費者端的converter bean。

MultiMethods @KafkaListener有 3 個方法; 一個用於每個已知對象,一個用於其他對象的后備默認方法。

運行應用程序並使用 curl 發送一些數據:

$ curl -X POST http://localhost:8080/send/foo/bar

$ curl -X POST http://localhost:8080/send/bar/baz

$ curl -X POST http://localhost:8080/send/unknown/xxx

安慰:

Received: Foo2 [foo=bar]

Received: Bar2 [bar=baz]

Received unknown: xxx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM