Maison >Problème commun >Quelles sont les trois solutions à une concurrence élevée ?
Trois solutions à une concurrence élevée sont : 1. Le fractionnement du système, diviser un système en plusieurs sous-systèmes ; 2. Le cache, l'un des facteurs importants pour des performances élevées dans tous les systèmes informatiques modernes ; 3. MQ (file d'attente de messages) ; , une structure de données « premier entré, premier sorti » dans la structure de données de base.
L'environnement d'exploitation de ce tutoriel : système Windows 7, ordinateur Dell G3.
1 : Division du système, diviser un système en plusieurs sous-systèmes, utilisez Dubbo pour le faire. Ensuite, chaque système est connecté à une base de données, il n'y avait donc à l'origine qu'une seule base de données, mais il existe désormais plusieurs bases de données, afin qu'elle puisse résister à une concurrence élevée.
2 : Cache, le cache doit être utilisé. La plupart des scénarios à forte concurrence impliquent plus de lecture et moins d'écriture. Vous pouvez ensuite écrire une copie à la fois dans la base de données et dans le cache, puis utiliser le cache en grande quantité lors de la lecture. Après tout, Redis peut facilement exécuter des dizaines de milliers de simultanéités sur une seule machine. Aucun problème. Vous pouvez donc réfléchir à la manière d'utiliser la mise en cache pour résister à une concurrence élevée dans des scénarios qui entraînent des demandes de lecture majeures dans votre projet.
Recommandation de cours vidéo → : "Solution de concurrence de données de niveau dix millions (théorie + combat pratique)"
3 : MQ (Message Queue), MQ doit être utilisé. Vous pouvez toujours rencontrer des scénarios d'écriture à haute concurrence. Par exemple, dans une opération commerciale, vous devez accéder fréquemment à la base de données des dizaines de fois, en ajoutant, supprimant, modifiant, ajoutant, supprimant et modifiant. Cette concurrence élevée tuera définitivement votre système. Si vous utilisez Redis pour héberger et écrire le cache, cela ne fonctionnera certainement pas (les moins fréquemment utilisées sont éliminées) à tout moment. il n'y a pas de support de transaction. Ainsi, lorsque vous devez utiliser MySQL, vous devez utiliser MySQL. Que devez-vous faire ? Utilisez MQ. Un grand nombre de demandes d'écriture sont versées dans MQ, mises en file d'attente et lues lentement, le système écrira ensuite lentement après consommation et le contrôlera dans la plage de charge de MySQL. Vous devez donc réfléchir à la manière d'utiliser MQ pour écrire de manière asynchrone et améliorer la concurrence dans des scénarios qui impliquent une logique métier d'écriture complexe dans votre projet. Il est acceptable qu’une seule machine MQ résiste à des dizaines de milliers de concurrences.
Informations étendues :
Trois autres façons de gérer la concurrence élevée
Sous-base de données et sous-table
Peut-être à le niveau final de la base de données ou Il est inévitable de résister à une concurrence élevée. Eh bien, divisez une base de données en plusieurs bibliothèques pour résister à une concurrence plus élevée, puis divisez une table en plusieurs tables, et le volume de données de chaque table reste un peu moins élevé. améliorer les performances de l'exécution de SQL.
Séparation de la lecture et de l'écriture
Cela signifie que la plupart du temps, la base de données peut lire plus et écrire moins. Il n'est pas nécessaire de concentrer toutes les requêtes sur une seule bibliothèque. Vous pouvez créer un maître. -architecture esclave, la bibliothèque principale écrit, lit à partir de la bibliothèque et sépare la lecture et l'écriture. Lorsqu'il y a trop de trafic de lecture, vous pouvez ajouter davantage de bibliothèques esclaves.
solrCloud
SolrCloud (solr cloud) est une solution de recherche distribuée fournie par Solr, qui peut résoudre la récupération distribuée en texte intégral de données massives. Parce qu'elle a construit un cluster, elle a une haute disponibilité. fonctionnalités. Effectuez une sauvegarde maître-esclave des données pour éviter un point de défaillance unique. Les données peuvent être restaurées rapidement. Et de nouveaux nœuds peuvent être ajoutés dynamiquement, puis les données peuvent être équilibrées pour obtenir un équilibrage de charge.
Pour plus de connaissances liées à l'informatique, veuillez visiter la rubrique FAQ !
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!