Aller au contenu
Retour au portfolio
Ingénierie des données 2024

Simulateur multi-agents de réplication de données

Une simulation multi-agents en Python où des agents logiciels placent, répliquent et surveillent des données sur trois nœuds MongoDB, avec un tableau de bord Flask pour la lancer et suivre la répartition.

Simulateur multi-agents de réplication de données preview

Aperçu

J'ai construit ce simulateur pour étudier comment un système multi-agents peut gérer les données d'une base distribuée. Avec le framework de modélisation à base d'agents Mesa, trois types d'agents travaillent sur trois nœuds MongoDB simulés : les gestionnaires de données écrivent les enregistrements, les agents de réplication les copient sur les autres nœuds et les agents de supervision relèvent le nombre de documents de chaque nœud. Une interface web Flask lance la simulation et affiche les résultats sous forme de graphiques.

Le problème

Répartir des données sur plusieurs nœuds pose des questions concrètes : où écrire chaque enregistrement, comment garder des copies ailleurs pour la redondance, et comment observer l'état du cluster pendant qu'il évolue. Sans un modèle qu'on peut exécuter et observer, ces mécanismes restent abstraits.

Ce que j'ai construit

J'ai modélisé le système avec Mesa : un DataReplicationModel active six agents dans un ordre aléatoire à chaque étape. Les DataManagerAgents choisissent un nœud et y insèrent des enregistrements, les ReplicationAgents copient chaque document d'un nœud vers les autres, et les MonitoringAgents comptent les documents par nœud et stockent ces mesures dans une collection MongoDB dédiée. Après chaque étape, le modèle met à jour la répartition. Une application Flask lance la simulation, affiche le nombre de documents par nœud et expose des endpoints JSON, dont les mesures CPU, mémoire et réseau en direct via psutil, que le tableau de bord Chart.js trace.

Résultats

  • Simulation exécutable avec trois types d'agents sur trois nœuds MongoDB
  • Mesures de chaque étape stockées dans une collection MongoDB séparée
  • Interface Flask avec une page de répartition et un tableau de bord Chart.js
  • Tests unitaires pour les agents, le modèle et la connexion à la base

Points clés

  • Modélisation à base d'agents avec Mesa et un ordonnanceur à activation aléatoire
  • Placement, réplication et supervision des données confiés à des agents distincts
  • Trois bases MongoDB utilisées comme nœuds de cluster simulés
  • Endpoints JSON pour la répartition des données et les mesures système en temps réel
  • Lancement en ligne de commande ou via l'interface web, sur le même modèle

Plus de projets

Voir tout

Construisons ensemble quelque chose de grand

Que vous ayez besoin d'une application web full-stack, d'un tableau de bord data ou d'un déploiement cloud-native, j'aimerais en discuter.