Maison > Problème commun > le corps du texte

Comment comprendre ce que sont les bases de données distribuées

coldplay.xixi
Libérer: 2022-05-13 11:46:09
original
9734 Les gens l'ont consulté

Les bases de données distribuées comprennent : 1. La base de données Elasticsearch, qui peut exister sur un seul nœud ou plusieurs nœuds ; 2. La base de données Redis, qui prend en charge les types de données riches ; 3. La base de données Mongodb, qui peut obtenir des données plus facilement 4 ; . Mysql Cluster distribué, haute disponibilité.

Comment comprendre ce que sont les bases de données distribuées

Les bases de données distribuées comprennent :

1.

Recommandation de cours → :

"Elasticsearch Full Text Search Practical Combat" (Vidéo pratique) Extrait du cours "Solution de concurrence de données de niveau dix millions (Théorie + Combat pratique)》

1. Introduction à Elasticsearch

Stockage de fichiers distribué en temps réel, chaque champ est indexé et consultable, analyse distribuée en temps réel Recherche Le moteur

peut être étendu à des centaines de serveurs pour traiter des données structurées ou non structurées au niveau PB

2. Scénarios d'application Elasticsearch

Moteur de recherche distribué et moteur d'analyse de données, complet- recherche de texte, recherche structurée, analyse de données

Traitement de données massives en temps quasi réel, recherche sur site (e-commerce, recrutement, portail, etc.), recherche sur système d'information (OA, CRM, ERP , etc.), analyse des données

3. Avantages et inconvénients d'Elasticsearch

Inconvénients : pas de vérification des utilisateurs et de contrôle des autorisations, pas de concept de transactions, pas de prise en charge de la restauration, la suppression accidentelle ne peut pas être restaurée, nécessite un environnement Java.

Avantages : divisez vos documents en différents conteneurs ou fragments, qui peuvent exister sur un seul nœud ou plusieurs nœuds

Répliquez chaque fragment pour fournir une sauvegarde des données et éviter les problèmes matériels entraînant perte de données.

Acheminez les requêtes mutuelles de n'importe quel nœud du cluster pour garantir que les données obtenues correspondent à ce dont vous avez besoin. Lorsque le cluster ajoute ou redistribue des fragments, le nouveau nœud ne s'arrêtera pas pour récupérer les données de fragment de nœud perdues

4. La solution de persistance d'Elasticsearch

gateway représente la méthode de stockage persistant de l'index elasticsearch. Par défaut, elasticsearch stocke d'abord l'index en mémoire, puis le conserve sur le disque dur lorsque la mémoire est pleine. Lorsque le cluster elasticsearch est arrêté ou redémarré, les données d'index seront lues à partir de la passerelle. Elasticsearch prend en charge plusieurs types de passerelles, notamment les systèmes de fichiers locaux (par défaut), les systèmes de fichiers distribués, HDFS de Hadoop et le service de stockage cloud S3 d'Amazon.

ElasticSearch enregistre d'abord le contenu de l'index dans la mémoire, puis conserve l'index sur le disque dur lorsque la mémoire n'est pas suffisante. Il dispose également d'une file d'attente qui écrit automatiquement l'index sur le disque dur lorsque le système est en panne. inactif au milieu.

2. Base de données Redis

1. Introduction à Redis

redis est un système de stockage clé-valeur avancé (NoSQL) open source sous licence BSD. peut être utilisé Il est utilisé pour stocker des chaînes, des structures de hachage, des listes chaînées et des ensembles. Par conséquent, il est souvent utilisé pour fournir des services de structure de données. Redis prend en charge la persistance des données et peut enregistrer les données en mémoire sur le disque et les charger à nouveau pour les utiliser. au redémarrage. Il prend en charge les données simples de type clé-valeur et fournit également le stockage de structures de données telles que liste, ensemble, zset et hachage. Redis prend en charge la sauvegarde des données, c'est-à-dire la sauvegarde des données en mode maître-esclave.

2.Scénarios d'application Redis

A) Comptage général : nombre de fans, nombre de Weibo

B) Modifications des informations utilisateur

C) Traitement du cache , En tant que système de file d'attente de cache

D) de MySQL, il existe un système de file d'attente prioritaire et un système de collecte de journaux

3 Avantages et inconvénients de Redis

Avantages :

<.>(1) C'est rapide car les données sont stockées en mémoire, similaire à HashMap. L'avantage de HashMap est que la complexité temporelle de la recherche et de l'opération est O(1)

(2) Il prend en charge les riches. les types de données et prennent en charge la chaîne, la liste, l'ensemble, l'ensemble trié, le hachage

(3) prennent en charge les transactions et les opérations sont atomiques. Ce qu'on appelle l'atomicité signifie que toutes les modifications apportées aux données sont exécutées ou ne sont pas exécutées du tout.

(4) Fonctionnalités riches : peut être utilisé pour la mise en cache, la messagerie, la définition du délai d'expiration par clé et sera automatiquement supprimé après l'expiration

Inconvénients :

(1) Redis n'a pas de fonction automatique de tolérance aux pannes et de récupération, le temps d'arrêt des machines hôte et esclave entraînera l'échec de certaines demandes de lecture et d'écriture frontales. Vous devez attendre que la machine redémarre ou basculer manuellement l'adresse IP frontale. récupérer

(2) L'hôte est en panne et certaines données ont échoué avant le temps d'arrêt. Synchronisez-vous avec la machine esclave à temps. Après le changement d'IP, une incohérence des données sera introduite, ce qui réduit la disponibilité du système

(3) La réplication maître-esclave de Redis adopte une réplication complète pendant le processus de réplication, l'hôte créera un instantané de la mémoire et enregistrera l'instantané de la mémoire du processus enfant sous forme de fichier et. envoyez-le à l'esclave. Ce processus nécessite de s'assurer que l'hôte dispose de suffisamment de mémoire libre. Si le fichier d'instantané est volumineux, il aura un impact plus important sur les capacités de service du cluster et le processus de réplication sera effectué lorsque la machine esclave rejoindra nouvellement le cluster ou lorsque la machine esclave et le réseau hôte seront déconnectés et reconnectés, c'est-à-dire , les fluctuations du réseau entraîneront la reconnexion de l'hôte et de l'hôte. Une copie complète des données entre les machines esclaves causera beaucoup de problèmes au fonctionnement réel du système

.

(4) Redis est difficile à prendre en charge l'expansion en ligne. Lorsque la capacité du cluster atteint la limite supérieure, l'expansion en ligne deviendra très compliquée. Pour éviter ce problème, le personnel d'exploitation et de maintenance doit s'assurer qu'il y a suffisamment d'espace lorsque le système est mis en ligne, ce qui entraîne un gaspillage important de ressources.

4. Solution de persistance Redis

Redis propose deux méthodes de persistance, l'une est la persistance RDB (le principe est de vider régulièrement les enregistrements de la base de données Redis en mémoire sur la persistance RDB du disque) et l'autre est la persistance AOF (ajouter uniquement un fichier) (le principe est d'écrire le journal des opérations de Reids dans le fichier de manière annexée).

La persistance RDB fait référence à l'écriture d'un instantané de l'ensemble de données en mémoire sur le disque dans un intervalle de temps spécifié. Le processus opérationnel réel consiste à créer un processus enfant et à écrire d'abord l'ensemble de données dans un fichier temporaire. l'écriture est réussie, puis remplacez le fichier précédent et stockez-le avec compression binaire.

3. Base de données Mongodb

1. Introduction à Mongodb

MongoDB lui-même est une base de données non relationnelle. Chacun de ses enregistrements est un document et chaque document se compose d'un ensemble de paires clé-valeur. Les documents dans MongoDB sont similaires aux objets JSON. Les valeurs des champs dans Document peuvent inclure d'autres documents, tableaux, etc.

2.Scénario d'application Mongodb

L'objectif principal de mongodb est de s'appuyer sur la méthode de stockage clé/valeur (offrant des performances élevées et une évolutivité élevée) et le système SGBDR traditionnel (fonctions riches) A pont qui combine le meilleur des deux mondes. Mongo convient aux scénarios suivants :

a. Données du site Web : Mongo est très approprié pour l'insertion, la mise à jour et les requêtes en temps réel, et possède la réplication et la haute évolutivité requises pour le stockage des données en temps réel du site Web. .

b. Mise en cache : En raison de ses hautes performances, mongo convient également comme couche de mise en cache pour l'infrastructure d'information. Après le redémarrage du système, le cache persistant construit par mongo peut empêcher la surcharge de la source de données sous-jacente.

c. Données de grande taille et de faible valeur : il peut être plus coûteux de stocker certaines données à l'aide de bases de données relationnelles traditionnelles. Avant cela, de nombreux programmeurs choisissaient souvent des fichiers traditionnels pour le stockage.

d. Scénarios de haute scalabilité : mongo est très adapté aux bases de données composées de dizaines ou de centaines de serveurs.

e. Utilisé pour le stockage d'objets et de données JSON : le format de données BSON de mongo est très approprié pour le stockage et les requêtes au format de documents.

3. Avantages et inconvénients de Mongodb

Avantages :

(1) Faible cohérence (cohérence éventuelle), qui peut mieux garantir la vitesse d'accès des utilisateurs

(2) La méthode de stockage de la structure du document peut obtenir des données plus facilement

(3) GridFS intégré prend en charge le stockage de grande capacité

(4) Dans les cas d'utilisation, des dizaines de millions de niveaux Pour les objets document, soit près de 10 Go de données, la requête pour les identifiants indexés ne sera pas plus lente que MySQL, tandis que la requête pour les champs non indexés gagnera globalement.

Inconvénients :

(1) Ne prend pas en charge les choses

(2) Occupe trop d'espace, provoquant un gaspillage de disque

(3) Autonome fiabilité Relativement faible

(4) De grandes quantités de données sont insérées en continu et les performances d'écriture fluctuent considérablement

4 La solution de persistance/gestion des exceptions de Mongodb

Lors de l'exécution d'une écriture. opération , MongoDB crée un journal contenant l'emplacement exact du disque et les octets modifiés. Par conséquent, si le serveur plante soudainement, au démarrage, le journal rejouera toutes les opérations d'écriture qui n'ont pas été vidées sur le disque avant le crash.

Le fichier de données est vidé sur le disque toutes les 60 secondes par défaut, le journal n'a donc besoin de conserver les données écrites que dans les 60 secondes. Le journal pré-alloue à cet effet plusieurs fichiers vides, situés dans /data/db/journal, nommés _j.0, j.1, etc.

Lorsque MongoDB fonctionne pendant une longue période, vous verrez des fichiers similaires à _j.6217, _j.6218 et _j.6219 dans le répertoire du journal. Ces fichiers sont les fichiers journaux actuels, et si MongoDB fonctionne tout le temps, ces chiffres continueront d'augmenter. Lorsque MongoDB est arrêté en douceur, ces fichiers seront effacés car ces journaux ne sont plus nécessaires lors d'un arrêt en douceur.

Si le serveur plante ou tue -9, lorsque mongodb redémarre, le fichier journal sera relu et des lignes de contrôle longues et inintelligibles seront affichées, indiquant une récupération normale.

4. Cluster distribué Mysql

1. Introduction au cluster distribué Mysql

Le cluster MySQL est un cluster sans partage, une solution de stockage basée sur le distribué. architecture de nœud, qui vise à fournir une tolérance aux pannes et des performances élevées.

La mise à jour des données utilise le niveau d'isolement en lecture validée pour garantir la cohérence de toutes les données des nœuds et utilise le mécanisme de validation en deux phases pour garantir que tous les nœuds ont les mêmes données (le cas échéant. Si l'opération d'écriture échoue, la mise à jour échoue).

Les nœuds homologues sans partage rendent les mises à jour sur un serveur immédiatement visibles sur les autres serveurs. La propagation des mises à jour utilise un mécanisme de communication complexe conçu pour fournir un débit élevé sur le réseau.

Répartissez la charge sur plusieurs serveurs MySQL pour maximiser les performances du programme et garantir une haute disponibilité et une redondance en stockant les données dans différents emplacements.

2. Scénarios d'application de cluster distribué Mysql

Résolvez le problème du stockage massif, tel que le cluster distribué Mysql utilisé par Jingdong B2B.

Convient à des milliards d'accès PV à DB.

3. Avantages et inconvénients du cluster distribué Mysql

Avantages :

a) Haute disponibilité

b) Basculement automatique rapide

c) Architecture distribuée flexible, pas de point de défaillance unique

d) Débit élevé et faible latence

e ) Forte évolutivité, prise en charge expansion en ligne

Inconvénients :

a) Il existe de nombreuses limitations, telles que : les clés étrangères ne sont pas prises en charge

b) Le déploiement, la gestion et la configuration sont complexes

c) Cela prend beaucoup d'espace disque et de mémoire

d) La sauvegarde et la récupération ne sont pas pratiques

e) Lors du redémarrage, le chargement du nœud de données prend beaucoup de temps données dans la mémoire. Temps

4. Solution de persistance de cluster distribué Mysql

Équilibrage de charge.

Gérer la sauvegarde des nœuds.

Recommandations d'apprentissage gratuites associées : Tutoriel vidéo MySQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!