English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Le sharding est le processus de stockage des enregistrements de données sur plusieurs machines, c'est la méthode que MongoDB utilise pour répondre aux besoins de croissance des données. Avec l'augmentation de la taille des données, une seule machine peut ne pas être suffisante pour stocker les données et ne pas fournir une capacité de lecture/écriture acceptable. Le sharding résout le problème de l'échelle horizontale. Grâce au sharding, vous pouvez ajouter plus d'ordinateurs pour répondre aux besoins de croissance des données et aux opérations de lecture et d'écriture.
Dans la réplication, toutes les écritures sont redirigées vers le nœud principal
Les requêtes sensibles au délai sont toujours redirigées vers le nœud principal
La limitation d'une seule instance de répétition est12un nœud
Lorsque le jeu de données d'activité est très grand, la mémoire ne peut pas être suffisamment grande
Le disque local n'est pas assez grand
L'extension verticale est trop coûteuse
La figure suivante montre les shards dans MongoDB utilisant un cluster de shards.
Dans la figure suivante, il y a trois composants principaux-
Shards
−Les shards sont utilisés pour stocker des données. Ils fournissent une haute disponibilité et une cohérence des données. Dans un environnement de production, chaque shard est un répertoire secondaire distinct.
Serveurs de configuration
−Les serveurs de configuration stockent les métadonnées du cluster. Les données incluent la correspondance des ensembles de données du cluster aux shards. Les routeurs de requêtes utilisent ces métadonnées pour diriger les opérations vers des shards spécifiques. Dans un environnement de production, un cluster de shards dispose exactement de3de serveurs de configuration.
Routeurs de requêtes
−Le routeur de requêtes est essentiellement une instance mongo, pouvant interfacer avec l'application client et diriger directement les opérations vers le shard approprié. Le routeur de requêtes traite les opérations, les localise sur le shard et renvoie les résultats au client. Un cluster de shards peut contenir plusieurs routeurs de requêtes pour répartir la charge des requêtes clients. Le client envoie des requêtes à un routeur de requêtes. Souvent, un cluster de shards dispose de nombreux routeurs de requêtes.