2

Je suis nouveau dans le domaine du traitement des événements. Je suis à la recherche d'un cadre de traitement d'événements basé sur Java pour mes besoins. J'ai parcouru un labyrinthe de documentation et de tutoriel sur les frameworks Myriad - Apache Storm, Apache Kafka ainsi que des courtiers d'événements traditionnels tels que RabbitMQ. Je ne suis pas le plus sage.Recommandation du cadre de traitement des événements

Mes exigences sont les suivantes. J'ai une source d'événements (par exemple le suivi de l'utilisation) qui me sont transmis. Je veux faire les choses avec eux:

  1. bucketing (les diviser en différents seaux par exemple par le client)
  2. Insérez tous les events buckets comme lots dans une base de données.
  3. Effectuez une sorte d'équilibrage de charge/priorisation d'événement, par ex. Je ne veux pas d'un client peu prioritaire poussant un énorme non. des événements affamés un client de haute priorité avec quelques événements.

Je ne me soucie pas trop de l'ordre des événements, mais je voudrais assurer haute disponibilité de ces systèmes.

À la recherche de quelques pointeurs pour commencer. Infrastructure technologique pas de barre, mais quelque chose de Java.

Répondre

3

Il y a de grands cadres pour faire en temps réel traitement distribué des données:

Dans votre cas , Je pense que choisir un de ces cadres est l comme prendre un marteau pour casser une noix. Vous devrez déployer et gérer un cluster avec des nœuds maîtres et esclaves en plus d'un cluster Kafka.

Pour garder votre architecture simple, évolutive et hautement disponible, vous devriez jeter un coup d'œil à KafkaStreams. KafkaStreams est une nouvelle API Java (disponible depuis kafka 0.10) pour effectuer des calculs en temps réel sur des sujets kafka.

Une application KafkaStreams est une application Java simple qui vous permet d'intégrer un travail dans une application existante.

De plus, les tâches de Kafka Streams peuvent être déployées avec une commande simple: java -jar.