2017-07-08 3 views
1

Je me demandais quels types de données nous pourrions avoir dans les sujets Kafka. Comme je sais au niveau de l'application c'est une paire clé-valeur et ce pourrait être les données de type qui est supporté par le langage. Par exemple, nous envoyons des messages au sujet, pourrait-il y avoir du json, des fichiers parquet, des données sérialisées ou bien nous n'utilisons les messages qu'avec le format texte brut?Kafka types de données de messages

Merci pour votre aide.

Répondre

0

Il existe différents formats de message selon que vous parlez des API, du protocole filaire ou du stockage sur disque.

Certains de ces formats Kafka message sont décrits dans les documents ici

https://kafka.apache.org/documentation/#messageformat

Kafka a le concept d'un sérialiseur/désérialiseur ou SerDes (prononcé Sir-Deez).

https://en.m.wikipedia.org/wiki/SerDes

A sérialiseur est une fonction qui peut prendre tout message et le convertit dans le tableau d'octets qui est réellement envoyé sur le fil en utilisant le protocole Kafka. Un désérialiseur fait le contraire, il lit la partie brute des octets de message du protocole de fil Kafka et recrée un message comme vous voulez que l'application réceptrice le voie.

Il existe des bibliothèques SerDes intégrées pour Strings, Long, ByteArrays, ByteBuffers et une multitude de bibliothèques SerDes communautaires pour JSON, ProtoBuf, Avro, ainsi que des formats de messages spécifiques aux applications.

Vous pouvez créer vos propres bibliothèques SerDes et consultez les rubriques suivantes

How to create Custom serializer in kafka?

+0

Cela signifie que je pouvais stocker des fichiers JSON ou dans Avro sujets Kafka en utilisant les bibliothèques SerDe? – Fateax

+0

Oui. De plusieurs manières différentes en fonction de la bibliothèque SerDes que vous configurez au moment de l'exécution. –

0

Sur le sujet, il s'agit toujours de données sérialisées. La sérialisation se produit chez le producteur avant l'envoi et la désérialisation chez le consommateur après la récupération. Les sérialiseurs et les désérialiseurs sont enfichables. Ainsi, comme vous l'avez dit au niveau de l'application, ce sont les paires de valeurs clés de tout type de données que vous souhaitez.