{"id":71769,"date":"2023-08-08T10:55:34","date_gmt":"2023-08-08T09:55:34","guid":{"rendered":"https:\/\/kinqsta.com\/fr\/?p=71769&#038;preview=true&#038;preview_id=71769"},"modified":"2023-10-05T12:57:05","modified_gmt":"2023-10-05T11:57:05","slug":"sharding-mongodb","status":"publish","type":"post","link":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/","title":{"rendered":"Un guide complet pour comprendre le sharding MongoDB"},"content":{"rendered":"<p>Dans le monde actuel ax\u00e9 sur les donn\u00e9es, o\u00f9 le volume et la complexit\u00e9 des donn\u00e9es continuent de cro\u00eetre \u00e0 un rythme sans pr\u00e9c\u00e9dent, le besoin de solutions de bases de donn\u00e9es robustes et \u00e9volutives est devenu primordial. On estime que <a href=\"https:\/\/www.statista.com\/statistics\/871513\/worldwide-data-created\/\" target=\"_blank\" rel=\"noopener noreferrer\">180 zettaoctets de donn\u00e9es<\/a> seront cr\u00e9\u00e9s d&rsquo;ici 2025. Il s&rsquo;agit l\u00e0 de chiffres importants \u00e0 prendre en compte.<\/p>\n<p>\u00c0 mesure que les donn\u00e9es et la demande des utilisateurs montent en fl\u00e8che, il n&rsquo;est plus possible de s&rsquo;appuyer sur une seule base de donn\u00e9es. Cela ralentit votre syst\u00e8me et surcharge les <a href=\"https:\/\/kinqsta.com\/fr\/blog\/developpeur-full-stack\/\">d\u00e9veloppeurs<\/a>. Vous pouvez adopter diverses solutions pour <a href=\"https:\/\/kinqsta.com\/fr\/mykinsta\/\">optimiser votre base de donn\u00e9es<\/a>, comme le <a href=\"https:\/\/kinqsta.com\/fr\/blog\/partage-base-donnees\/\">partage de base de donn\u00e9es<\/a>.<\/p>\n<p>Dans ce guide complet, nous nous plongeons dans les profondeurs du sharding MongoDB, en d\u00e9mystifiant ses avantages, ses composants, ses meilleures pratiques, ses erreurs courantes et la mani\u00e8re dont vous pouvez commencer.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Qu&rsquo;est-ce que le sharding de base de donn\u00e9es ?<\/h2>\n<p>Le sharding de base de donn\u00e9es est une technique de gestion de base de donn\u00e9es qui consiste \u00e0 partitionner horizontalement une base de donn\u00e9es en croissance en unit\u00e9s plus petites et plus faciles \u00e0 g\u00e9rer, connues sous le nom de <b>shards<\/b>.<\/p>\n<p>Au fur et \u00e0 mesure que votre base de donn\u00e9es se d\u00e9veloppe, il devient pratique de la diviser en plusieurs parties plus petites et de stocker chaque partie s\u00e9par\u00e9ment sur des machines diff\u00e9rentes. Ces parties plus petites, ou \u00ab \u00ab shards \u00bb, sont des sous-ensembles ind\u00e9pendants de la base de donn\u00e9es globale. C&rsquo;est ce processus de division et de distribution des donn\u00e9es qui constitue la division de la base de donn\u00e9es.<\/p>\n<figure id=\"attachment_157232\" aria-describedby=\"caption-attachment-157232\" style=\"width: 512px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2023\/06\/Database-Sharding-Illustration.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-157232 size-full\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2023\/06\/Database-Sharding-Illustration.png\" alt=\"Illustration de la r\u00e9partition de la base de donn\u00e9es\" width=\"512\" height=\"185\"><\/a><figcaption id=\"caption-attachment-157232\" class=\"wp-caption-text\">Illustration de la r\u00e9partition de la base de donn\u00e9es (Source d&rsquo;image : <a href=\"https:\/\/www.linkedin.com\/pulse\/intro-database-sharding-can-bad-idea-saurav-prateek\/\" target=\"_blank\" rel=\"noopener noreferrer\">LinkedIn<\/a>)<\/figcaption><\/figure>\n<p>Lors de la mise en \u0153uvre d&rsquo;une base de donn\u00e9es partag\u00e9e, il existe deux approches principales : d\u00e9velopper une solution de partage personnalis\u00e9e ou payer pour une solution existante. La question se pose alors de savoir s&rsquo;il est pr\u00e9f\u00e9rable de d\u00e9velopper une solution de sharding ou de payer pour une telle solution.<\/p>\n<figure id=\"attachment_157234\" aria-describedby=\"caption-attachment-157234\" style=\"width: 512px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2023\/06\/Build-vs-Buy-for-a-Sharding-Solution.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-157234 size-full\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2023\/06\/Build-vs-Buy-for-a-Sharding-Solution.jpg\" alt=\"Image du m\u00e8me \u00ab Construire ou acheter une solution de sharding \u00bb\" width=\"512\" height=\"205\"><\/a><figcaption id=\"caption-attachment-157234\" class=\"wp-caption-text\">Image du m\u00e8me \u00ab Construire ou acheter une solution de sharding \u00bb (Source : <a href=\"https:\/\/www.linkedin.com\/pulse\/build-vs-buy-what-do-you-expect-see-new-normal-naidu\/\" target=\"_blank\" rel=\"noopener noreferrer\">LinkedIn<\/a>)<\/figcaption><\/figure>\n<p>Pour faire ce choix, vous devez prendre en compte le co\u00fbt de l&rsquo;int\u00e9gration d&rsquo;une tierce partie, en gardant \u00e0 l&rsquo;esprit les facteurs suivants :<\/p>\n<ul>\n<li><b>Comp\u00e9tences des d\u00e9veloppeurs et facilit\u00e9 d&rsquo;apprentissage <\/b>: La courbe d&rsquo;apprentissage associ\u00e9e au produit et son ad\u00e9quation avec les comp\u00e9tences de vos d\u00e9veloppeurs.<\/li>\n<li><b>Le mod\u00e8le de donn\u00e9es et l&rsquo;API propos\u00e9s par le syst\u00e8me <\/b>: Chaque syst\u00e8me de donn\u00e9es a sa propre fa\u00e7on de repr\u00e9senter ses donn\u00e9es. La commodit\u00e9 et la facilit\u00e9 avec lesquelles vous pouvez int\u00e9grer vos applications au produit est un facteur cl\u00e9 \u00e0 prendre en compte.<\/li>\n<li><b>Assistance \u00e0 la client\u00e8le et documentation en ligne <\/b>: Si vous rencontrez des difficult\u00e9s ou si vous avez besoin d&rsquo;aide pendant l&rsquo;int\u00e9gration, la qualit\u00e9 et la disponibilit\u00e9 de l&rsquo;assistance \u00e0 la client\u00e8le et d&rsquo;une documentation en ligne compl\u00e8te sont cruciales.<\/li>\n<li><b>Disponibilit\u00e9 du d\u00e9ploiement dans le cloud <\/b>: \u00c9tant donn\u00e9 que de plus en plus d&rsquo;entreprises passent au cloud, il est important de d\u00e9terminer si le produit tiers peut \u00eatre d\u00e9ploy\u00e9 dans un environnement cloud.<\/li>\n<\/ul>\n<p>Sur la base de ces facteurs, vous pouvez maintenant d\u00e9cider de construire une solution de sharding ou de payer pour une solution qui fait le gros du travail \u00e0 votre place.<\/p>\n<p>Aujourd&rsquo;hui, la plupart des bases de donn\u00e9es disponibles sur le march\u00e9 prennent en charge le sharding de base de donn\u00e9es. Par exemple, les bases de donn\u00e9es relationnelles comme MariaDB (qui fait partie de la pile de serveurs haute performance de <a href=\"https:\/\/kinqsta.com\/fr\/blog\/partage-base-donnees\/\">Kinsta<\/a>) et les <a href=\"https:\/\/kinqsta.com\/fr\/blog\/mongodb-vs-mysql\/\">bases de donn\u00e9es NoSQL<\/a> comme MongoDB.<\/p>\n<h2>Qu&rsquo;est-ce que le sharding dans MongoDB ?<\/h2>\n<p>L&rsquo;objectif principal de l&rsquo;utilisation d&rsquo;une base de donn\u00e9es NoSQL est sa capacit\u00e9 \u00e0 r\u00e9pondre aux exigences de calcul et de stockage pour l&rsquo;interrogation et le stockage d&rsquo;\u00e9normes volumes de donn\u00e9es.<\/p>\n<p>En g\u00e9n\u00e9ral, une base de donn\u00e9es MongoDB contient un grand nombre de collections. Chaque collection est constitu\u00e9e de divers documents contenant des donn\u00e9es sous la forme de paires cl\u00e9-valeur. Vous pouvez diviser cette grande collection en plusieurs collections plus petites \u00e0 l&rsquo;aide de MongoDB sharding. Cela permet \u00e0 MongoDB d&rsquo;effectuer des requ\u00eates sans trop solliciter le serveur.<\/p>\n<p>Par exemple, Telef\u00f3nica Tech g\u00e8re plus de <a href=\"https:\/\/www.mongodb.com\/customers\/telefonica\" target=\"_blank\" rel=\"noopener noreferrer\">30 millions d&rsquo;appareils IoT<\/a> dans le monde. Pour faire face \u00e0 l&rsquo;augmentation constante de l&rsquo;utilisation des appareils, l&rsquo;entreprise avait besoin d&rsquo;une plateforme capable de s&rsquo;adapter de mani\u00e8re \u00e9lastique et de g\u00e9rer un environnement de donn\u00e9es en croissance rapide. La technologie sharding de MongoDB \u00e9tait le bon choix pour eux, car elle correspondait le mieux \u00e0 leurs besoins en termes de co\u00fbts et de capacit\u00e9.<\/p>\n<p>Avec le sharding de MongoDB, Telef\u00f3nica Tech ex\u00e9cute plus de 115.000 requ\u00eates par seconde. Cela repr\u00e9sente 30 000 insertions dans la base de donn\u00e9es par seconde, avec moins d&rsquo;une milliseconde de latence !<\/p>\n<h2>Avantages du sharding MongoDB<\/h2>\n<p>Voici quelques avantages du sharding MongoDB pour les donn\u00e9es \u00e0 grande \u00e9chelle dont vous pouvez profiter :<\/p>\n<h3>Capacit\u00e9 de stockage<\/h3>\n<p>Nous avons d\u00e9j\u00e0 vu que le sharding permet de r\u00e9partir les donn\u00e9es entre les diff\u00e9rentes unit\u00e9s du cluster. Gr\u00e2ce \u00e0 cette r\u00e9partition, chaque arbre contient un fragment de l&rsquo;ensemble des donn\u00e9es de la grappe. Des disques suppl\u00e9mentaires augmenteront la capacit\u00e9 de stockage du cluster au fur et \u00e0 mesure que la taille de votre ensemble de donn\u00e9es augmentera.<\/p>\n<h3>Lecture\/\u00e9criture<\/h3>\n<p>MongoDB r\u00e9partit la charge de travail de lecture et d&rsquo;\u00e9criture sur les tessons d&rsquo;un cluster partag\u00e9, ce qui permet \u00e0 chaque tesson de traiter un sous-ensemble d&rsquo;op\u00e9rations du cluster. Les deux charges de travail peuvent \u00eatre mises \u00e0 l&rsquo;\u00e9chelle horizontalement dans le cluster en ajoutant des shards suppl\u00e9mentaires.<\/p>\n<h3>Haute disponibilit\u00e9<\/h3>\n<p>Le d\u00e9ploiement de grappes et de serveurs de configuration en tant qu&rsquo;ensembles de r\u00e9pliques offre une disponibilit\u00e9 accrue. D\u00e9sormais, m\u00eame si un ou plusieurs jeux de r\u00e9pliques sont totalement indisponibles, le cluster partag\u00e9 peut effectuer des lectures et des \u00e9critures partielles.<\/p>\n<h3>Protection contre les pannes<\/h3>\n<p>De nombreux utilisateurs sont affect\u00e9s lorsqu&rsquo;une machine tombe en panne \u00e0 la suite d&rsquo;un arr\u00eat non planifi\u00e9. Dans un syst\u00e8me non partag\u00e9, la base de donn\u00e9es enti\u00e8re ayant \u00e9t\u00e9 interrompue, l&rsquo;impact est massif. Le rayon d&rsquo;action d&rsquo;une mauvaise exp\u00e9rience\/impact utilisateur peut \u00eatre contenu gr\u00e2ce au sharding MongoDB.<\/p>\n<h3>G\u00e9odistribution et performances<\/h3>\n<p>Les serveurs r\u00e9pliqu\u00e9s peuvent \u00eatre plac\u00e9s dans diff\u00e9rentes r\u00e9gions. Cela signifie que les clients peuvent b\u00e9n\u00e9ficier d&rsquo;un acc\u00e8s \u00e0 leurs donn\u00e9es avec une faible latence, c&rsquo;est-\u00e0-dire que les requ\u00eates des consommateurs peuvent \u00eatre redirig\u00e9es vers le shard le plus proche. En fonction de la politique de gouvernance des donn\u00e9es d&rsquo;une r\u00e9gion, il est possible de configurer des serveurs sp\u00e9cifiques pour qu&rsquo;ils soient plac\u00e9s dans une r\u00e9gion donn\u00e9e.<\/p>\n<h2>Composants des clusters MongoDB Sharded<\/h2>\n<p>Apr\u00e8s avoir expliqu\u00e9 le concept d&rsquo;un cluster MongoDB sharded, nous allons nous pencher sur les composants de ces clusters.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"3\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>1. Shard<\/h3>\n<p>Chaque shard poss\u00e8de un sous-ensemble de donn\u00e9es partag\u00e9es. \u00c0 partir de MongoDB 3.6, les shards doivent \u00eatre d\u00e9ploy\u00e9s en tant qu&rsquo;ensemble de r\u00e9pliques afin d&rsquo;assurer une haute disponibilit\u00e9 et une redondance.<\/p>\n<p>Chaque base de donn\u00e9es dans le cluster partag\u00e9 a un shard primaire qui contiendra toutes les collections non partag\u00e9es pour cette base de donn\u00e9es. Le premier d\u00e9p\u00f4t n&rsquo;est pas li\u00e9 au premier d\u00e9p\u00f4t d&rsquo;un ensemble de r\u00e9pliques.<\/p>\n<p>Pour modifier le shard primaire d&rsquo;une base de donn\u00e9es, vous pouvez utiliser la commande <code>movePrimary<\/code>. Le processus de migration du shard primaire peut prendre beaucoup de temps.<\/p>\n<p>Pendant cette p\u00e9riode, vous ne devez pas essayer d&rsquo;acc\u00e9der aux collections associ\u00e9es \u00e0 la base de donn\u00e9es tant que le processus de migration n&rsquo;est pas termin\u00e9. Ce processus peut avoir un impact sur les op\u00e9rations globales du cluster en fonction de la quantit\u00e9 de donn\u00e9es en cours de migration.<\/p>\n<p>Vous pouvez utiliser la m\u00e9thode <code>sh.status()<\/code> de <strong>mongosh<\/strong> pour consulter la vue d&rsquo;ensemble du cluster. Cette m\u00e9thode renvoie le shard principal de la base de donn\u00e9es ainsi que la r\u00e9partition des morceaux entre les shards.<\/p>\n<h3>2. Configurations de serveurs<\/h3>\n<p>Le d\u00e9ploiement de serveurs de configuration pour les clusters partag\u00e9s en tant qu&rsquo;ensembles de r\u00e9pliques am\u00e9liorerait la coh\u00e9rence du serveur de configuration. En effet, MongoDB peut exploiter les protocoles standard de lecture et d&rsquo;\u00e9criture des ensembles de r\u00e9pliques pour les donn\u00e9es de configuration.<\/p>\n<p>Pour d\u00e9ployer des serveurs de configuration en tant qu&rsquo;ensembles de r\u00e9pliques, vous devez ex\u00e9cuter le moteur de stockage WiredTiger. WiredTiger utilise un contr\u00f4le de la concurrence au niveau des documents pour ses op\u00e9rations d&rsquo;\u00e9criture. Par cons\u00e9quent, plusieurs clients peuvent modifier simultan\u00e9ment diff\u00e9rents documents d&rsquo;une collection.<\/p>\n<p>Les serveurs de configuration stockent les m\u00e9tadonn\u00e9es d&rsquo;un cluster partag\u00e9 dans la base de donn\u00e9es de configuration. Pour acc\u00e9der \u00e0 la base de donn\u00e9es de configuration, vous pouvez utiliser la commande suivante dans le shell Mongo :<\/p>\n<pre><code class=\"language-bash\"><code>use config<\/code><\/code><\/pre>\n<p>Voici quelques restrictions \u00e0 prendre en compte :<\/p>\n<ul>\n<li>Une configuration d&rsquo;ensemble de r\u00e9pliques utilis\u00e9e pour les serveurs de configuration doit avoir z\u00e9ro arbitre. Un arbitre participe \u00e0 une \u00e9lection pour le primaire, mais il n&rsquo;a pas de copie du jeu de donn\u00e9es et ne peut pas devenir le primaire.<\/li>\n<li>Cet ensemble de r\u00e9pliques ne peut pas avoir de membres retard\u00e9s. Les membres retard\u00e9s ont des copies de l&rsquo;ensemble de donn\u00e9es de l&rsquo;ensemble de r\u00e9pliques. Mais l&rsquo;ensemble de donn\u00e9es d&rsquo;un membre retard\u00e9 contient un \u00e9tat ant\u00e9rieur ou retard\u00e9 de l&rsquo;ensemble de donn\u00e9es.<\/li>\n<li>Vous devez cr\u00e9er des index pour les serveurs de configuration. Pour faire simple, aucun membre ne doit avoir le param\u00e8tre <code>members[n].buildIndexes<\/code> d\u00e9fini sur <code>false<\/code>.<\/li>\n<\/ul>\n<p>Si l&rsquo;ensemble de r\u00e9pliques du serveur de configuration perd son membre principal et ne peut pas en \u00e9lire un, les m\u00e9tadonn\u00e9es du cluster deviennent en lecture seule. Vous serez toujours en mesure de lire et d&rsquo;\u00e9crire \u00e0 partir des shards, mais aucune division de morceaux ou migration ne se produira jusqu&rsquo;\u00e0 ce que l&rsquo;ensemble de r\u00e9pliques puisse \u00e9lire un membre principal.<\/p>\n<h3>3. Routeurs de requ\u00eates<\/h3>\n<p>Les instances MongoDB mongos peuvent servir de routeurs de requ\u00eates, permettant aux applications clientes et aux clusters partag\u00e9s de se connecter facilement.<\/p>\n<p>\u00c0 partir de la version 4.4 de MongoDB, les instances mongos peuvent prendre en charge les lectures couvertes afin de r\u00e9duire les temps de latence. Avec les lectures couvertes, les instances mongos enverront des op\u00e9rations de lecture \u00e0 deux membres de l&rsquo;ensemble de r\u00e9pliques pour chaque grappe interrog\u00e9e. Les r\u00e9sultats sont ensuite renvoy\u00e9s par le premier r\u00e9pondant de chaque d\u00e9p\u00f4t.<\/p>\n<p>Voici comment les trois composants interagissent au sein d&rsquo;un cluster partag\u00e9 :<\/p>\n<figure id=\"attachment_157236\" aria-describedby=\"caption-attachment-157236\" style=\"width: 1132px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2023\/06\/Interaction-of-Sharded-Cluster-Components.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-157236 size-full\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2023\/06\/Interaction-of-Sharded-Cluster-Components.png\" alt=\"Interaction des composants d'un cluster partag\u00e9\" width=\"1132\" height=\"655\"><\/a><figcaption id=\"caption-attachment-157236\" class=\"wp-caption-text\">Interaction des composants d&rsquo;un cluster partag\u00e9 (Image Source : <a href=\"https:\/\/www.mongodb.com\/docs\/manual\/sharding\/\" target=\"_blank\" rel=\"noopener noreferrer\">MongoDB Sharding<\/a>)<\/figcaption><\/figure>\n<p>Une instance de MongoDB dirigera une requ\u00eate vers un cluster en :<\/p>\n<ol>\n<li>V\u00e9rifiant la liste des serveurs qui doivent recevoir la requ\u00eate.<\/li>\n<li>\u00c9tablissant un curseur sur tous les serveurs cibl\u00e9s.<\/li>\n<\/ol>\n<p>Mongo fusionne ensuite les donn\u00e9es de chaque groupe cibl\u00e9 et renvoie le document de r\u00e9sultat. Certains modificateurs de requ\u00eate, comme le tri, sont ex\u00e9cut\u00e9s sur chaque serveur avant que les mongos ne r\u00e9cup\u00e8rent les r\u00e9sultats.<\/p>\n<p>Dans certains cas, lorsque la cl\u00e9 du d\u00e9p\u00f4t ou un pr\u00e9fixe de cl\u00e9 du d\u00e9p\u00f4t fait partie de la requ\u00eate, les mongos ex\u00e9cutent une op\u00e9ration planifi\u00e9e \u00e0 l&rsquo;avance, en orientant les requ\u00eates vers une sous-classe de d\u00e9p\u00f4ts dans le cluster.<\/p>\n<p>Pour un <b>cluster en production<\/b>, assurez-vous que les donn\u00e9es sont redondantes et que vos syst\u00e8mes sont hautement disponibles. Vous pouvez choisir la configuration suivante pour le d\u00e9ploiement d&rsquo;un cluster de production :<\/p>\n<ul>\n<li>D\u00e9ployer chaque grappe en tant qu&rsquo;ensemble de r\u00e9pliques \u00e0 3 membres<\/li>\n<li>D\u00e9ployez les serveurs de configuration en tant qu&rsquo;ensemble de r\u00e9pliques \u00e0 trois membres<\/li>\n<li>D\u00e9ployez un ou plusieurs routeurs mongos<\/li>\n<\/ul>\n<p>Pour un <b>cluster de non-production<\/b>, vous pouvez d\u00e9ployer un cluster sharded avec les composants suivants :<\/p>\n<ul>\n<li>Un ensemble de r\u00e9pliques \u00e0 shard unique<\/li>\n<li>Un serveur de configuration de l&rsquo;ensemble de r\u00e9pliques<\/li>\n<li>Une instance mongos<\/li>\n<\/ul>\n<h2>Comment fonctionne le sharding MongoDB ?<\/h2>\n<p>Maintenant que nous avons discut\u00e9 des diff\u00e9rents composants d&rsquo;un cluster partag\u00e9, il est temps de plonger dans le processus.<\/p>\n<p>Pour r\u00e9partir les donn\u00e9es sur plusieurs serveurs, vous utiliserez mongos. Lorsque vous vous connectez pour envoyer les requ\u00eates \u00e0 MongoDB, mongos cherche et trouve o\u00f9 r\u00e9sident les donn\u00e9es. Il les r\u00e9cup\u00e8re ensuite sur le bon serveur et les fusionne si elles ont \u00e9t\u00e9 r\u00e9parties sur plusieurs serveurs.<\/p>\n<p>\u00c9tant donn\u00e9 que tout cela est pris en charge par le <a href=\"https:\/\/kinqsta.com\/fr\/blog\/developpeur-backend\/\">backend<\/a>, vous n&rsquo;aurez rien \u00e0 faire du c\u00f4t\u00e9 de l&rsquo;application. MongoDB agira comme s&rsquo;il s&rsquo;agissait d&rsquo;une connexion de requ\u00eate normale. Votre client se connectera \u00e0 MongoDB, et le serveur de configuration s&rsquo;occupera du reste.<\/p>\n<h2>Comment configurer le sharding MongoDB \u00e9tape par \u00e9tape ?<\/h2>\n<p>La mise en place du sharding MongoDB est un processus qui implique plusieurs \u00e9tapes afin d&rsquo;assurer un cluster de base de donn\u00e9es stable et efficace. Voici une instruction d\u00e9taill\u00e9e, \u00e9tape par \u00e9tape, sur la fa\u00e7on de configurer le sharding MongoDB.<\/p>\n<p>Avant de commencer, il est important de noter que pour configurer le sharding dans MongoDB, vous devez avoir au moins trois serveurs : un pour le serveur de configuration, un pour l&rsquo;instance mongos et un ou plusieurs pour les shards.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"6\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>1. Cr\u00e9er un r\u00e9pertoire \u00e0 partir du serveur de configuration<\/h3>\n<p>Pour commencer, nous allons cr\u00e9er un r\u00e9pertoire pour les donn\u00e9es du serveur de configuration. Pour ce faire, ex\u00e9cutez la commande suivante sur le premier serveur :<\/p>\n<pre><code class=\"language-bash\"> mkdir \/data\/configdb<\/code><\/pre>\n<h3>2. D\u00e9marrer MongoDB en mode configuration<\/h3>\n<p>Ensuite, nous allons d\u00e9marrer MongoDB en mode configuration sur le premier serveur \u00e0 l&rsquo;aide de la commande suivante :<\/p>\n<pre><code class=\"language-bash\">mongod --configsvr --dbpath \/data\/configdb --port 27019<\/code><\/pre>\n<p>Cette commande d\u00e9marrera le serveur de configuration sur <code>port 27019 <\/code> et stockera ses donn\u00e9es dans le r\u00e9pertoire <strong>\/data\/configdb<\/strong>. Notez que nous utilisons le drapeau <code>--configsvr<\/code> pour indiquer que ce serveur sera utilis\u00e9 comme serveur de configuration.<\/p>\n<h3>3. D\u00e9marrer l&rsquo;instance Mongos<\/h3>\n<p>L&rsquo;\u00e9tape suivante consiste \u00e0 d\u00e9marrer l&rsquo;instance mongos. Ce processus va router les requ\u00eates vers les bons shards en se basant sur la cl\u00e9 de sharding. Pour d\u00e9marrer l&rsquo;instance mongos, utilisez la commande suivante :<\/p>\n<pre><code class=\"language-bash\">mongos --configdb &lt;config server&gt;:27019<\/code><\/pre>\n<p>Remplacez <code>&lt;config server&gt;<\/code> par l&rsquo;adresse IP ou le nom d&rsquo;h\u00f4te de la machine sur laquelle tourne le serveur de configuration.<\/p>\n<h3>4. Se connecter \u00e0 l&rsquo;instance Mongos<\/h3>\n<p>Une fois que l&rsquo;instance Mongos est en cours d&rsquo;ex\u00e9cution, nous pouvons nous y connecter \u00e0 l&rsquo;aide du shell MongoDB. Pour ce faire, ex\u00e9cutez la commande suivante :<\/p>\n<pre><code class=\"language-markdown\">mongo --host &lt;mongos-server&gt; --port 27017<\/code><\/pre>\n<p>Dans cette commande, <code>&lt;mongos-server&gt;<\/code> doit \u00eatre remplac\u00e9 par le nom d&rsquo;h\u00f4te ou l&rsquo;adresse IP du serveur ex\u00e9cutant l&rsquo;instance mongos. Cela ouvrira le shell MongoDB, ce qui nous permettra d&rsquo;interagir avec l&rsquo;instance mongos et d&rsquo;ajouter des serveurs au cluster.<\/p>\n<p>Remplacez<code>&lt;mongos-server&gt;<\/code> par l&rsquo;adresse IP ou le nom d&rsquo;h\u00f4te de la machine sur laquelle tourne l&rsquo;instance mongos.<\/p>\n<h3>5. Ajouter des serveurs aux clusters<\/h3>\n<p>Maintenant que nous sommes connect\u00e9s \u00e0 l&rsquo;instance mongos, nous pouvons ajouter des serveurs au cluster en ex\u00e9cutant la commande suivante :<\/p>\n<pre><code class=\"language-markdown\">sh.addShard(\"&lt;shard-server&gt;:27017\")<\/code><\/pre>\n<p>Dans cette commande, <code>&lt;shard-server&gt;<\/code> doit \u00eatre remplac\u00e9 par le nom d&rsquo;h\u00f4te ou l&rsquo;adresse IP du serveur qui ex\u00e9cute le shard. Cette commande ajoutera le groupe de serveurs au cluster et le rendra disponible pour l&rsquo;utilisation.<\/p>\n<p>R\u00e9p\u00e9tez cette \u00e9tape pour chaque groupe de stockage que vous souhaitez ajouter au cluster.<\/p>\n<h3>6. Activer le sharding pour la base de donn\u00e9es<\/h3>\n<p>Enfin, nous allons activer le sharding pour une base de donn\u00e9es en ex\u00e9cutant la commande suivante :<\/p>\n<pre><code class=\"language-markdown\">sh.enableSharding(\"&lt;database&gt;\")<\/code><\/pre>\n<p>Dans cette commande, <code>&lt;database&gt;<\/code> doit \u00eatre remplac\u00e9 par le nom de la base de donn\u00e9es que vous souhaitez partager. Cette commande activera le sharding pour la base de donn\u00e9es sp\u00e9cifi\u00e9e, ce qui vous permettra de distribuer ses donn\u00e9es sur plusieurs shards.<\/p>\n<p>Et c&rsquo;est tout ! En suivant ces \u00e9tapes, vous devriez maintenant disposer d&rsquo;un cluster partag\u00e9 MongoDB enti\u00e8rement fonctionnel, pr\u00eat \u00e0 \u00e9voluer horizontalement et \u00e0 g\u00e9rer des charges de trafic \u00e9lev\u00e9es.<\/p>\n<h2>Meilleures pratiques pour le sharding MongoDB<\/h2>\n<p>Bien que nous ayons mis en place notre cluster partag\u00e9, il est essentiel de le surveiller et de le maintenir r\u00e9guli\u00e8rement pour garantir des <a href=\"https:\/\/kinqsta.com\/fr\/blog\/outils-apm\/\">performances<\/a> optimales. Voici quelques bonnes pratiques pour le sharding MongoDB :<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"7\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>1. D\u00e9terminez la bonne cl\u00e9 de partage<\/h3>\n<p>La cl\u00e9 de partage est un facteur critique dans le partage MongoDB qui d\u00e9termine la fa\u00e7on dont les donn\u00e9es sont distribu\u00e9es entre les partages. Il est important de choisir une cl\u00e9 de stockage qui distribue uniform\u00e9ment les donn\u00e9es sur les serveurs et prend en charge les requ\u00eates les plus courantes. Vous devez \u00e9viter de choisir une cl\u00e9 de r\u00e9partition qui provoque des points chauds ou une r\u00e9partition in\u00e9gale des donn\u00e9es, car cela peut entra\u00eener des probl\u00e8mes de performance.<\/p>\n<p>Pour choisir la bonne cl\u00e9 de r\u00e9partition, vous devez analyser vos donn\u00e9es et les types de requ\u00eates que vous effectuerez et s\u00e9lectionner une cl\u00e9 qui r\u00e9ponde \u00e0 ces exigences.<\/p>\n<h3>2. Pr\u00e9voyez la croissance des donn\u00e9es<\/h3>\n<p>Lors de la mise en place de votre cluster, pr\u00e9voyez une croissance future en commen\u00e7ant par un nombre de shards suffisant pour g\u00e9rer votre charge de travail actuelle et en ajoutant d&rsquo;autres shards si n\u00e9cessaire. Assurez-vous que votre infrastructure mat\u00e9rielle et r\u00e9seau peut prendre en charge le nombre de grappes et la quantit\u00e9 de donn\u00e9es que vous pr\u00e9voyez d&rsquo;avoir \u00e0 l&rsquo;avenir.<\/p>\n<h3>3. Utilisez du mat\u00e9riel d\u00e9di\u00e9 pour les shards<\/h3>\n<p>Pour des performances et une fiabilit\u00e9 optimales, utilisez du mat\u00e9riel d\u00e9di\u00e9 pour chaque groupe de stockage. Chaque groupe doit avoir son propre serveur ou sa propre machine virtuelle, afin de pouvoir utiliser toutes les ressources sans interf\u00e9rence.<\/p>\n<p>L&rsquo;utilisation de mat\u00e9riel partag\u00e9 peut entra\u00eener des conflits de ressources et une d\u00e9gradation des performances, ce qui a un impact sur la fiabilit\u00e9 globale du syst\u00e8me.<\/p>\n<h3>4. Utilisez des jeux de r\u00e9pliques pour les serveurs de shard<\/h3>\n<p>L&rsquo;utilisation d&rsquo;ensembles de r\u00e9pliques pour les serveurs de stockage permet d&rsquo;assurer la haute disponibilit\u00e9 et la tol\u00e9rance aux pannes de votre cluster de stockage MongoDB. Chaque ensemble de r\u00e9pliques doit comporter au moins trois membres, et chaque membre doit r\u00e9sider sur une machine physique distincte. Cette configuration garantit que votre cluster partag\u00e9 peut survivre \u00e0 la d\u00e9faillance d&rsquo;un seul serveur ou d&rsquo;un seul membre de l&rsquo;ensemble de r\u00e9pliques.<\/p>\n<h3>5. Surveiller les performances des shards<\/h3>\n<p>Il est essentiel de surveiller les performances de vos grappes pour identifier les probl\u00e8mes avant qu&rsquo;ils ne deviennent majeurs. Vous devez surveiller l&rsquo;unit\u00e9 centrale, la m\u00e9moire, les entr\u00e9es\/sorties de disque et les entr\u00e9es\/sorties de r\u00e9seau pour chaque serveur de grappes afin de vous assurer que la grappe est en mesure de g\u00e9rer la charge de travail.<\/p>\n<p>Vous pouvez utiliser les outils de surveillance int\u00e9gr\u00e9s \u00e0 MongoDB, tels que <a href=\"https:\/\/www.mongodb.com\/docs\/database-tools\/mongostat\/\" target=\"_blank\" rel=\"noopener noreferrer\">mongostat<\/a> et <a href=\"https:\/\/www.mongodb.com\/docs\/database-tools\/mongotop\/\" target=\"_blank\" rel=\"noopener noreferrer\">mongotop<\/a>, ou des outils de surveillance tiers, tels que Datadog, Dynatrace et Zabbix, pour suivre les performances des serveurs partag\u00e9s.<\/p>\n<h3>6. Planifiez la reprise apr\u00e8s sinistre<\/h3>\n<p>La planification de la reprise apr\u00e8s sinistre est essentielle pour maintenir la fiabilit\u00e9 de votre cluster MongoDB. Vous devez disposer d&rsquo;un plan de reprise apr\u00e8s sinistre comprenant des sauvegardes r\u00e9guli\u00e8res, des tests de validit\u00e9 des sauvegardes et un plan de restauration des sauvegardes en cas de d\u00e9faillance.<\/p>\n<h3>7. Utilisez le sharding bas\u00e9 sur les hachages lorsque c&rsquo;est n\u00e9cessaire<\/h3>\n<p>Lorsque les applications \u00e9mettent des requ\u00eates bas\u00e9es sur des plages, la mise en rang\u00e9e est b\u00e9n\u00e9fique car les op\u00e9rations peuvent \u00eatre limit\u00e9es \u00e0 un plus petit nombre de disques, le plus souvent \u00e0 un seul. Vous devez comprendre vos donn\u00e9es et les mod\u00e8les de requ\u00eate pour mettre en \u0153uvre cette solution.<\/p>\n<p>La r\u00e9partition par hachage garantit une distribution uniforme des lectures et des \u00e9critures. Cependant, il ne permet pas d&rsquo;effectuer des op\u00e9rations efficaces bas\u00e9es sur des plages.<\/p>\n<h2>Quelles sont les erreurs courantes \u00e0 \u00e9viter lors du sharding de votre base de donn\u00e9es MongoDB ?<\/h2>\n<p>Le sharding MongoDB est une technique puissante qui peut vous aider \u00e0 faire \u00e9voluer votre base de donn\u00e9es horizontalement et \u00e0 distribuer les donn\u00e9es sur plusieurs serveurs. Cependant, il y a plusieurs erreurs communes que vous devriez \u00e9viter lorsque vous partagez votre base de donn\u00e9es MongoDB. Vous trouverez ci-dessous quelques-unes des erreurs les plus courantes et la mani\u00e8re de les \u00e9viter.<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"7\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<h3>1. Choisir la mauvaise cl\u00e9 de sharding<\/h3>\n<p>L&rsquo;une des d\u00e9cisions les plus cruciales que vous prendrez lors du sharding de votre base de donn\u00e9es MongoDB est le choix de la cl\u00e9 de sharding. Cette cl\u00e9 d\u00e9termine la mani\u00e8re dont les donn\u00e9es sont r\u00e9parties entre les diff\u00e9rents serveurs, et le choix d&rsquo;une mauvaise cl\u00e9 peut entra\u00eener une r\u00e9partition in\u00e9gale des donn\u00e9es, des points chauds et des performances m\u00e9diocres.<\/p>\n<p>Une erreur fr\u00e9quente consiste \u00e0 choisir une valeur de cl\u00e9 de r\u00e9partition qui n&rsquo;augmente que pour les nouveaux documents lorsque vous utilisez une r\u00e9partition bas\u00e9e sur une plage plut\u00f4t qu&rsquo;une r\u00e9partition par hachage. Par exemple, un horodatage (naturellement) ou tout ce qui a une composante temporelle comme \u00e9l\u00e9ment le plus important, comme ObjectID (les quatre premiers octets sont un horodatage).<\/p>\n<p>Si vous s\u00e9lectionnez une cl\u00e9 de d\u00e9p\u00f4t, toutes les insertions iront dans le bloc ayant la plus grande plage. M\u00eame si vous ajoutez sans cesse de nouvelles unit\u00e9s, votre capacit\u00e9 d&rsquo;\u00e9criture maximale n&rsquo;augmentera jamais.<\/p>\n<p>Si vous pr\u00e9voyez d&rsquo;augmenter la capacit\u00e9 d&rsquo;\u00e9criture, essayez d&rsquo;utiliser une cl\u00e9 de d\u00e9p\u00f4t bas\u00e9e sur le hachage, qui permettra d&rsquo;utiliser le m\u00eame champ tout en offrant une bonne \u00e9volutivit\u00e9 en \u00e9criture.<\/p>\n<h3>2. Tentative de modification de la valeur de la cl\u00e9 de sharding<\/h3>\n<p>Les cl\u00e9s de sharding sont immuables pour un document existant, ce qui signifie que vous ne pouvez pas modifier la cl\u00e9. Vous pouvez effectuer certaines mises \u00e0 jour avant le sharding, mais pas apr\u00e8s. Si vous essayez de modifier la cl\u00e9 de d\u00e9p\u00f4t d&rsquo;un document existant, vous obtiendrez l&rsquo;erreur suivante :<\/p>\n<pre><code class=\"language-markdown\">cannot modify shard key's value fieldid for collection: collectionname<\/code><\/pre>\n<p>Vous pouvez supprimer et r\u00e9ins\u00e9rer le document pour r\u00e9organiser la cl\u00e9 de sharding au lieu d&rsquo;essayer de la modifier.<\/p>\n<h3>3. \u00c9chec de la surveillance du cluster<\/h3>\n<p>Le sharding introduit une complexit\u00e9 suppl\u00e9mentaire dans l&rsquo;environnement de la base de donn\u00e9es, et il est donc essentiel de surveiller \u00e9troitement le cluster. Ne pas surveiller le cluster peut entra\u00eener des probl\u00e8mes de performance, des pertes de donn\u00e9es et d&rsquo;autres probl\u00e8mes.<\/p>\n<p>Pour \u00e9viter cette erreur, vous devez mettre en place des outils de surveillance permettant de suivre des param\u00e8tres cl\u00e9s tels que l&rsquo;utilisation du processeur, de la m\u00e9moire, de l&rsquo;espace disque et du trafic r\u00e9seau. Vous devez \u00e9galement mettre en place des alertes lorsque certains seuils sont d\u00e9pass\u00e9s.<\/p>\n<h3>4. Attendre trop longtemps pour ajouter un nouveau groupe de sharding (surcharge)<\/h3>\n<p>L&rsquo;une des erreurs les plus courantes \u00e0 \u00e9viter lors du sharding de votre base de donn\u00e9es MongoDB est d&rsquo;attendre trop longtemps avant d&rsquo;ajouter un nouveau shard. Lorsqu&rsquo;un shard est surcharg\u00e9 de donn\u00e9es ou de requ\u00eates, cela peut entra\u00eener des probl\u00e8mes de performance et ralentir l&rsquo;ensemble du cluster.<\/p>\n<p>Supposons que vous disposiez d&rsquo;un cluster imaginaire compos\u00e9 de deux disques durs, avec 20000 blocs (5000 consid\u00e9r\u00e9s comme\u00a0 \u00ab actifs \u00bb), et que nous devions ajouter un troisi\u00e8me disque dur. Ce troisi\u00e8me d\u00e9p\u00f4t stockera finalement un tiers des blocs actifs (et des blocs totaux).<\/p>\n<p>La difficult\u00e9 consiste \u00e0 d\u00e9terminer \u00e0 quel moment le groupe de stockage cesse d&rsquo;ajouter des frais g\u00e9n\u00e9raux et devient un atout. Nous devrions calculer la charge que le syst\u00e8me produirait lors de la migration des blocs actifs vers le nouveau bloc et d\u00e9terminer \u00e0 quel moment elle serait n\u00e9gligeable par rapport au gain global du syst\u00e8me.<\/p>\n<p>Dans la plupart des sc\u00e9narios, il est relativement facile d&rsquo;imaginer que cette s\u00e9rie de migrations prendrait encore plus de temps sur un ensemble de serveurs surcharg\u00e9s, et qu&rsquo;il faudrait beaucoup plus de temps pour que notre nouveau serveur franchisse le seuil et devienne un gain net. Il est donc pr\u00e9f\u00e9rable d&rsquo;\u00eatre proactif et d&rsquo;ajouter de la capacit\u00e9 avant que cela ne devienne n\u00e9cessaire.<\/p>\n<p>Parmi les strat\u00e9gies d&rsquo;att\u00e9nuation possibles, citons la surveillance r\u00e9guli\u00e8re du cluster et l&rsquo;ajout proactif de nouvelles unit\u00e9s \u00e0 des moments o\u00f9 le trafic est faible, de mani\u00e8re \u00e0 r\u00e9duire la concurrence pour les ressources. Il est sugg\u00e9r\u00e9 d&rsquo;\u00e9quilibrer manuellement les morceaux \u00ab chauds \u00bb cibl\u00e9s (acc\u00e9d\u00e9s plus que d&rsquo;autres) pour d\u00e9placer l&rsquo;activit\u00e9 vers le nouveau shard plus rapidement.<\/p>\n<h3>5. Sous-provisionnement des serveurs de configuration<\/h3>\n<p>Si les serveurs de configuration sont sous-provisionn\u00e9s, cela peut entra\u00eener des probl\u00e8mes de performance et d&rsquo;instabilit\u00e9. Le sous-provisionnement peut \u00eatre d\u00fb \u00e0 une allocation insuffisante de ressources telles que l&rsquo;unit\u00e9 centrale, la m\u00e9moire ou le stockage.<\/p>\n<p>Il peut en r\u00e9sulter une lenteur des requ\u00eates, des d\u00e9passements de d\u00e9lai, voire des pannes. Pour \u00e9viter cela, il est essentiel d&rsquo;allouer suffisamment de ressources aux serveurs de configuration, en particulier dans les grands clusters. La surveillance r\u00e9guli\u00e8re de l&rsquo;utilisation des ressources des serveurs de configuration peut aider \u00e0 identifier les probl\u00e8mes de sous-provisionnement.<\/p>\n<p>Un autre moyen d&rsquo;\u00e9viter ce probl\u00e8me est d&rsquo;utiliser du mat\u00e9riel d\u00e9di\u00e9 pour les serveurs de configuration, plut\u00f4t que de partager les ressources avec d&rsquo;autres composants de la grappe. Cela permet de s&rsquo;assurer que les serveurs de configuration disposent de suffisamment de ressources pour g\u00e9rer leur charge de travail.<\/p>\n<h3>6. Absence de sauvegarde et de restauration des donn\u00e9es<\/h3>\n<p>Les sauvegardes sont essentielles pour s&rsquo;assurer que les donn\u00e9es ne sont pas perdues en cas de panne. La perte de donn\u00e9es peut survenir pour diverses raisons, notamment une d\u00e9faillance mat\u00e9rielle, une erreur humaine ou une attaque malveillante.<\/p>\n<p>Ne pas sauvegarder et restaurer les donn\u00e9es peut entra\u00eener des pertes de donn\u00e9es et des temps d&rsquo;arr\u00eat. Pour \u00e9viter cette erreur, vous devez mettre en place une strat\u00e9gie de <a href=\"https:\/\/kinqsta.com\/fr\/blog\/comment-sauvegarder-base-de-donnees-mysql-avec-phpmyadmin\/\">sauvegarde<\/a> et de restauration comprenant des sauvegardes r\u00e9guli\u00e8res, des sauvegardes de test et la restauration des donn\u00e9es dans un environnement de test.<\/p>\n<h3>7. Ne pas tester le cluster partag\u00e9<\/h3>\n<p>Avant de d\u00e9ployer votre cluster partag\u00e9 en production, vous devez le tester compl\u00e8tement pour vous assurer qu&rsquo;il peut g\u00e9rer la charge et les requ\u00eates attendues. Ne pas tester le cluster partag\u00e9 peut entra\u00eener des performances m\u00e9diocres et des pannes.<\/p>\n<h2>Index MongoDB partag\u00e9 ou en grappe : Lequel est le plus efficace pour les grands ensembles de donn\u00e9es ?<\/h2>\n<p>Le sharding MongoDB et les index en grappe sont tous deux des strat\u00e9gies efficaces pour g\u00e9rer les grands ensembles de donn\u00e9es. Mais elles ont des objectifs diff\u00e9rents. Le choix de la bonne approche d\u00e9pend des exigences sp\u00e9cifiques de votre application.<\/p>\n<p>Le sharding est une technique de mise \u00e0 l&rsquo;\u00e9chelle horizontale qui distribue les donn\u00e9es sur de nombreux n\u0153uds, ce qui en fait une solution efficace pour g\u00e9rer les grands ensembles de donn\u00e9es avec des taux d&rsquo;\u00e9criture \u00e9lev\u00e9s. Elle est transparente pour les applications, ce qui leur permet d&rsquo;interagir avec MongoDB comme s&rsquo;il s&rsquo;agissait d&rsquo;un serveur unique.<\/p>\n<p>D&rsquo;autre part, les index en grappe am\u00e9liorent les performances des requ\u00eates qui r\u00e9cup\u00e8rent des donn\u00e9es \u00e0 partir de grands ensembles de donn\u00e9es en permettant \u00e0 MongoDB de localiser les donn\u00e9es plus efficacement lorsqu&rsquo;une requ\u00eate correspond au champ index\u00e9.<\/p>\n<p>Alors, lequel des deux est le plus efficace pour les grands ensembles de donn\u00e9es ? La r\u00e9ponse d\u00e9pend du cas d&rsquo;utilisation sp\u00e9cifique et des exigences de la charge de travail.<\/p>\n<p>Si l&rsquo;application n\u00e9cessite un d\u00e9bit d&rsquo;\u00e9criture et de requ\u00eate \u00e9lev\u00e9 et qu&rsquo;elle doit \u00e9voluer horizontalement, le sharding MongoDB est probablement la meilleure option. Cependant, les index en grappe peuvent \u00eatre plus efficaces si l&rsquo;application a une charge de travail importante en lecture et n\u00e9cessite que les donn\u00e9es fr\u00e9quemment interrog\u00e9es soient organis\u00e9es dans un ordre sp\u00e9cifique.<\/p>\n<p>Le sharding et les index en grappe sont tous deux des outils puissants pour la <a href=\"https:\/\/kinqsta.com\/fr\/blog\/adminer\/\">gestion<\/a> de grands ensembles de donn\u00e9es dans MongoDB. L&rsquo;essentiel est d&rsquo;\u00e9valuer soigneusement les exigences de votre application et les caract\u00e9ristiques de la charge de travail afin de d\u00e9terminer la meilleure approche pour votre cas d&rsquo;utilisation sp\u00e9cifique.<\/p>\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Un cluster sharded est une architecture puissante qui peut g\u00e9rer de grandes quantit\u00e9s de donn\u00e9es et \u00e9voluer horizontalement pour r\u00e9pondre aux besoins d&rsquo;applications en pleine croissance. Le cluster est constitu\u00e9 de shards, de serveurs de configuration, de processus mongos et d&rsquo;applications clientes, et les donn\u00e9es sont partitionn\u00e9es sur la base d&rsquo;une cl\u00e9 de shard choisie avec soin pour garantir une distribution et une interrogation efficaces.<\/p>\n<p>En tirant parti de la puissance du sharding, les applications peuvent b\u00e9n\u00e9ficier d&rsquo;une haute disponibilit\u00e9, de performances am\u00e9lior\u00e9es et d&rsquo;une utilisation efficace des ressources mat\u00e9rielles. Le choix de la bonne cl\u00e9 de r\u00e9partition est crucial pour une distribution homog\u00e8ne des donn\u00e9es.<\/p>\n<p><em>Que pensez-vous de MongoDB et de la pratique du sharding de base de donn\u00e9es ? Y a-t-il un aspect du sharding que nous aurions d\u00fb couvrir ? Faites-le nous savoir dans les commentaires !<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans le monde actuel ax\u00e9 sur les donn\u00e9es, o\u00f9 le volume et la complexit\u00e9 des donn\u00e9es continuent de cro\u00eetre \u00e0 un rythme sans pr\u00e9c\u00e9dent, le besoin &#8230;<\/p>\n","protected":false},"author":199,"featured_media":71770,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1020],"class_list":["post-71769","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-outils-developpement-web"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Sharding MongoDB : Un guide complet<\/title>\n<meta name=\"description\" content=\"Le sharding MongoDB permet \u00e0 MongoDB d&#039;effectuer des requ\u00eates sans alourdir le serveur et en divisant les collections.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Un guide complet pour comprendre le sharding MongoDB\" \/>\n<meta property=\"og:description\" content=\"Le sharding MongoDB permet \u00e0 MongoDB d&#039;effectuer des requ\u00eates sans alourdir le serveur et en divisant les collections.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-08T09:55:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-05T11:57:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/mongodb-sharding.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Le sharding MongoDB permet \u00e0 MongoDB d&#039;effectuer des requ\u00eates sans alourdir le serveur et en divisant les collections.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/mongodb-sharding.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinqsta.com\/fr\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Un guide complet pour comprendre le sharding MongoDB\",\"datePublished\":\"2023-08-08T09:55:34+00:00\",\"dateModified\":\"2023-10-05T11:57:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/\"},\"wordCount\":5216,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/mongodb-sharding.jpg\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/\",\"url\":\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/\",\"name\":\"Sharding MongoDB : Un guide complet\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/mongodb-sharding.jpg\",\"datePublished\":\"2023-08-08T09:55:34+00:00\",\"dateModified\":\"2023-10-05T11:57:05+00:00\",\"description\":\"Le sharding MongoDB permet \u00e0 MongoDB d'effectuer des requ\u00eates sans alourdir le serveur et en divisant les collections.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#primaryimage\",\"url\":\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/mongodb-sharding.jpg\",\"contentUrl\":\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/mongodb-sharding.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinqsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Outils de d\u00e9veloppement web\",\"item\":\"https:\/\/kinqsta.com\/fr\/sujets\/outils-developpement-web\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Un guide complet pour comprendre le sharding MongoDB\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinqsta.com\/fr\/#website\",\"url\":\"https:\/\/kinqsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinqsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinqsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinqsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinqsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinqsta.com\/fr\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinqsta.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinqsta.com\/fr\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Sharding MongoDB : Un guide complet","description":"Le sharding MongoDB permet \u00e0 MongoDB d'effectuer des requ\u00eates sans alourdir le serveur et en divisant les collections.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/","og_locale":"fr_FR","og_type":"article","og_title":"Un guide complet pour comprendre le sharding MongoDB","og_description":"Le sharding MongoDB permet \u00e0 MongoDB d'effectuer des requ\u00eates sans alourdir le serveur et en divisant les collections.","og_url":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2023-08-08T09:55:34+00:00","article_modified_time":"2023-10-05T11:57:05+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/mongodb-sharding.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"Le sharding MongoDB permet \u00e0 MongoDB d'effectuer des requ\u00eates sans alourdir le serveur et en divisant les collections.","twitter_image":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/mongodb-sharding.jpg","twitter_creator":"@kinsta_fr","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Jeremy Holcombe","Dur\u00e9e de lecture estim\u00e9e":"21 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#article","isPartOf":{"@id":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinqsta.com\/fr\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Un guide complet pour comprendre le sharding MongoDB","datePublished":"2023-08-08T09:55:34+00:00","dateModified":"2023-10-05T11:57:05+00:00","mainEntityOfPage":{"@id":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/"},"wordCount":5216,"commentCount":0,"publisher":{"@id":"https:\/\/kinqsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/mongodb-sharding.jpg","inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/","url":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/","name":"Sharding MongoDB : Un guide complet","isPartOf":{"@id":"https:\/\/kinqsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#primaryimage"},"image":{"@id":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/mongodb-sharding.jpg","datePublished":"2023-08-08T09:55:34+00:00","dateModified":"2023-10-05T11:57:05+00:00","description":"Le sharding MongoDB permet \u00e0 MongoDB d'effectuer des requ\u00eates sans alourdir le serveur et en divisant les collections.","breadcrumb":{"@id":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#primaryimage","url":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/mongodb-sharding.jpg","contentUrl":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/mongodb-sharding.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinqsta.com\/fr\/blog\/sharding-mongodb\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinqsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Outils de d\u00e9veloppement web","item":"https:\/\/kinqsta.com\/fr\/sujets\/outils-developpement-web\/"},{"@type":"ListItem","position":3,"name":"Un guide complet pour comprendre le sharding MongoDB"}]},{"@type":"WebSite","@id":"https:\/\/kinqsta.com\/fr\/#website","url":"https:\/\/kinqsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinqsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinqsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinqsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinqsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinqsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinqsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinqsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinqsta.com\/fr\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinqsta.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinqsta.com\/fr\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/posts\/71769","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/comments?post=71769"}],"version-history":[{"count":5,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/posts\/71769\/revisions"}],"predecessor-version":[{"id":71790,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/posts\/71769\/revisions\/71790"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71769\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71769\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71769\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71769\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71769\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71769\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71769\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71769\/translations\/es"},{"href":"https:\/\/kinqsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71769\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/media\/71770"}],"wp:attachment":[{"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/media?parent=71769"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/tags?post=71769"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinqsta.com\/fr\/wp-json\/wp\/v2\/topic?post=71769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}