Bonjour tout le monde,
Pour mon plaisir personnel, je m’intéresse à l’algorithme de consensus Raft et j’ai commencé ma propre implémentation. Mon problème arrive au moment où je veux le tester.
Par exemple, une phase de l’algorithme est l’élection d’un leader. Les différents noeuds du système doivent communiquer entre eux et élire un leader. Pour chaque terme, un seul leader peut être élu. Actuellement, pour vérifier que mon implémentation fonctionne, je lance trois serveurs localement et je garde un oeil sur les logs pour vérifier que c’est bien le cas. Mais cette méthode n’est pas vraiment optimale et demande beaucoup de travail manuel. Il n’existe pas de "décision centrale" (une base de données ou quelque chose du genre) donc chaque noeud garde en mémoire qui est le leader pour le terme actuel.
Ce qui m’amène à ma question : existe-t-elle des bonnes pratiques pour tester ce genre de systèmes distribués ? Si ça peut aider dans vos réponses, j’utilise Java et Spring.