Vlastní deserialiser pomocí univerzální Kafka spolknout

0

Otázka

V návaznosti na to (omlouvám se, měl jiný uživatel): Kafka Klíč přístup na Vniknutí Python Flink Stavové funkce

Náš případ použití je, že jsme využít Kafka záhlaví jako prostředek sledování a rodu, stejně jako metadata. Při pohledu na tento: https://github.com/apache/flink-statefun/blob/master/statefun-flink/statefun-flink-io-bundle/src/main/java/org/apache/flink/statefun/flink/io/kafka/binders/ingress/v1/RoutableKafkaIngressDeserializer.java#L45-L61 vypadá To, že pomocí standardní deserializer, záhlaví jsou vynechány.

Účinně, co chci, je způsob, jak aplikovat své vlastní deserializer, která vrátí zprávu obsahující tuto a jakékoliv další metadata ze záznamu. Chtěl bych přidat něco jako UniversalKafkaIngress tak, že bych mohl nakonfigurovat pomocí vzdáleného modulu.

Při pohledu na kód, vidím, že jsem se mohl zaregistrovat nový ExtensionModule, a nahradit deserializer (a vytvořit vlastní druh). Je to doporučeno? Pokud ano - jsou tam nějaké dokumenty na tohle (pokud ne, jak bych mohl nastavit statefun, aby si to vyzvednout)?

Nebo je tam jiný preferovaný způsob?

Ještě jednou díky...

apache-flink flink-statefun
2021-11-23 14:27:20
1

Nejlepší odpověď

0

Ah - zjistil, kde jsem šel špatně.

Můžete načíst ExtensionModule pomocí standardního modulu SPI proces - a proto se zaregistrovat jako nový "univerzální" ingress, tak, že to může být načten na dálku. Měl jsem překlep - což je důvod, proč jsem bojoval.

Existuje několik gotchas - a budu psát gist trochu později ukázat, jak to lze udělat.

2021-11-25 10:46:08

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................