2017-06-28 3 views
1

Je veux vraiment obtenir une solution architecturale pour mon scénario ci-dessous.Traitement des événements en temps réel

J'ai une source d'événements (disons capteurs dans les puits de pétrole, environ 50000), qui produit des événements à un serveur. Côté serveur, je souhaite traiter tous ces événements de telle sorte que les informations provenant des capteurs concernant l'humidité, la température, la pression ... etc soient stockées/mises à jour dans une base de données. Je suis confondu avec le canal ou le kafka.

Quelqu'un peut-il s'il vous plaît répondre à mon scénario simple en termes architecturaux.

Je ne veux pas stocker l'événement quelque part, puisque je suis déjà en train de mettre à jour la base de données avec les dernières valeurs.

Dois-je vraiment besoin d'étincelle, (flume/kafka) + étincelle, pour répondre au côté traitement ?. Peut-on faire n'importe quel type de traitement en utilisant un canal sans évier?

Répondre

0

Un moyen serait de transmettre tous les messages à Kafka Topic. En utilisant Spark Stream vous pouvez ingérer et traiter à partir du sujet kafka. Spark streaming peut directement traiter à partir de votre Kafka Topic

+0

Oui ou Kafka Streams pourrait faire le droit de traitement au sein de Kafka et vous n'auriez pas besoin de Spark. Tout dépend du type de "traitement" à effectuer. –

+0

Le traitement est effectué sous API grand public Kafka? – Jobs

1

Il semble que vous ayez besoin d'utiliser l'API Kafka producer pour publier les événements sur un sujet puis de simplement lire ces événements soit en utilisant l'API grand public Kafka pour écrire dans votre base de données ou utiliser le Connecteur d'évier Kafka JDBC. De plus, si vous avez besoin des dernières données de Kafka, jetez un coup d'œil au compactage des logs.