Stratégies de sharding pour le scaling horizontal

Le sharding est la méthode utilisée par MongoDB pour distribuer des données sur plusieurs serveurs. Cela permet de gérer de très grands volumes de données et d’améliorer les performances en répartissant la charge de travail sur plusieurs serveurs.

Principes du sharding

Le sharding repose sur la division des données en chunks (morceaux) qui sont distribués sur différents shards (serveurs). Un mongos (processus de routage) gère la distribution des requêtes vers les shards appropriés, et un config server garde une trace de l’emplacement des données.

Étapes pour configurer le sharding

  1. Configurer le config server : Le config server est un composant critique du sharding qui stocke les métadonnées du cluster.

    mongod --configsvr --replSet "configReplSet" --dbpath /data/configdb --port 27019
  2. Démarrer les shards : Chaque shard est un replica set. Vous devez donc configurer chaque shard avec plusieurs serveurs pour assurer la réplication.

    mongod --shardsvr --replSet "shard1ReplSet" --dbpath /data/shard1 --port 27018
  3. Lancer le processus mongos : Le processus mongos sert de routeur pour le cluster shardé. Il redirige les requêtes vers les shards appropriés.

    mongos --configdb configReplSet/mongodb-config:27019
  4. Ajouter des shards au cluster : Une fois que le processus mongos est lancé, vous pouvez ajouter des shards au cluster.

    mongosh
    sh.addShard("shard1ReplSet/mongodb-shard1:27018")

Shard Key

Le shard key est un champ ou un ensemble de champs dans un document qui est utilisé pour déterminer sur quel shard les documents seront stockés. Il est crucial de bien choisir cette clé pour répartir efficacement les données entre les shards. Une mauvaise clé de sharding peut entraîner des déséquilibres de données (où certaines shards contiennent beaucoup plus de données que d'autres).

Exemple de création d’un shard key sur le champ email :

sh.shardCollection("ecommerce.clients", { "email": 1 })

Last updated