87 votes

Dans Mongo, quelle est la différence entre le sharding et la réplication ?

La réplication semble être beaucoup plus simple que le sharding, à moins que je ne manque les avantages de ce que le sharding tente de réaliser. Ne fournissent-ils pas tous deux une mise à l'échelle horizontale ?

4voto

Minsky Points 1690

Juste pour mettre ça quelque part...

La façon la plus basique d'exécuter mongo est en tant que serveur autonome.

  • Vous écrivez une configuration (fichier ou options cli)
  • initier le serveur en utilisant mongod

Pour cette photo, je n'ai pas inclus le "client". Regarde la suivante.

standalone

  • Un ensemble de répliques est un ensemble de serveurs initialisés exactement comme ci-dessus avec un fichier de configuration différent.
  • Pour les relier, nous nous connectons à l'un d'entre eux, et nous initialisons le mode de réplique.
  • Ils se reflètent l'un l'autre (dans la configuration la plus courante). Ce système garantit une haute disponibilité des données.

L'initialisation de l'ensemble de répliques est représentée dans la boîte à bordure rouge.

replica set

  • Le sharding ne consiste pas à répliquer les données, mais à les fragmenter.
  • Chaque fragment de données est appelé chunk et va dans un shard différent. shard = chaque ensemble de répliques.
  • le serveur "principal", qui fonctionne mongos au lieu de mongod . C'est un routeur pour les requêtes du client.

sharded cluster

Obvious : La contrepartie est une architecture plus complexe. Nouveauté : serveur de configuration (là encore, un fichier de configuration différent).

Il y a beaucoup Il n'y a rien à ajouter, mais à part les mots, les images restent les mêmes.


Même MongoDB recommande d'étudier soigneusement votre cas avant de procéder au sharding. La mise à l'échelle verticale (vs) est probablement une bonne idée au moins une fois. avant mise à l'échelle horizontale (hs).

Le vs a fini de mettre à niveau le matériel (cpu, ram, etc.). Le hs a besoin de plus d'ordinateurs (mais il pourrait s'agir d'ordinateurs bon marché).

2voto

Basit Points 642

La réplication et le sharding peuvent tous deux être utilisés (individuellement ou ensemble) pour la mise à l'échelle horizontale d'une installation MongoDB.

Sharding est la solution de MongoDB pour répondre aux exigences de la croissance des données. Le sharding stocke les enregistrements de données sur plusieurs serveurs afin d'accélérer le débit des requêtes en lecture et en écriture, en particulier pour les très grands ensembles de données. Tous les serveurs du cluster sharded peuvent répondre à une opération de lecture ou d'écriture, ce qui accélère considérablement les réponses aux requêtes.

Réplication est la solution de MongoDB pour assurer la stabilité, la sauvegarde et la reprise après sinistre d'une installation MongoDB. Ce processus copie et synchronise l'ensemble des données répliquées sur plusieurs serveurs. Cela permet d'éviter les temps d'arrêt si un serveur est hors ligne.

N'importe lequel des serveurs secondaires peut répondre aux requêtes de lecture, mais seul le serveur primaire effectue les opérations d'écriture. Les résultats de l'opération d'écriture seront ensuite propagés vers les serveurs secondaires.

Scénario 1 : Tolérance aux pannes Dans ce scénario, l'utilisateur stocke des données de facturation dans une installation MongoDB. Ces données sont essentielles à l'activité de l'utilisateur et doivent être disponibles 24 heures sur 24, 7 jours sur 7, même si un serveur tombe en panne ou est mis hors ligne.

La réplication MongoDB est la meilleure solution pour cet utilisateur. Avec la réplication, l'ensemble des données est mis en miroir sur plusieurs serveurs. Si un serveur tombe en panne ou est mis hors ligne, les autres serveurs du cluster prennent le relais.

Scénario 2 : Haute performance Dans ce scénario, l'utilisateur exploite un site de réseau social qui est exécuté à partir d'une base de données MongoDB. Au fur et à mesure que le réseau social se développe, l'ensemble de données MongoDB s'est développé en même temps. L'utilisateur voit les temps de requête et les chargements de page augmenter au-delà d'un point acceptable. Il est essentiel que l'installation MongoDB de l'utilisateur bénéficie d'une amélioration majeure des performances.

La mise en place d'un cluster MongoDB sharded est la meilleure solution pour cet utilisateur. Le cluster sharded divisera l'ensemble des données de l'utilisateur et en stockera des parties sur des serveurs secondaires distincts. Chaque serveur secondaire peut répondre aux requêtes en lecture ou en écriture sur sa partie des données, ce qui augmente considérablement le temps de réponse de l'installation.

0voto

Deepak Koshy Points 101

MongoDB Atlas est une base de données en tant que service. Il prend en charge les trois principaux fournisseurs de nuages tels qu'Azure, AWS et GCP. Dans un environnement en nuage, on parle généralement de haute disponibilité et d'évolutivité. Dans Atlas, les "clusters" peuvent être soit un ensemble de répliques, soit un cluster sharded. Ces deux éléments répondent aux caractéristiques de haute disponibilité et d'évolutivité de notre environnement en nuage.

En général, un cluster est un groupe de serveurs utilisés pour réaliser une tâche spécifique. Ainsi, les clusters sharded sont utilisés pour stocker des données sur plusieurs machines afin de répondre à la demande de croissance des données. Au fur et à mesure que la taille des données augmente, une seule machine peut ne pas être suffisante pour stocker les données et fournir un débit de lecture et d'écriture acceptable. Les clusters sharded prennent en charge l'évolutivité horizontale de l'environnement cloud sous-jacent.

Un ensemble de répliques dans MongoDB est un groupe de processus Mongo qui maintiennent le même ensemble de données. Les ensembles de répliques assurent la redondance et la haute disponibilité, et constituent la base de tous les déploiements de production.Dans une réplique, un nœud est un nœud primaire qui reçoit toutes les opérations d'écriture. Toutes les autres instances, telles que les secondaires, appliquent les opérations du primaire afin de disposer du même ensemble de données. Les répliques se concentrent principalement sur la disponibilité des données.

Veuillez vérifier le documentation

Merci.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X