Méthode de traitement à haute concurrence :
(Partage de vidéos d'apprentissage : vidéo d'enseignement Java)
1. Commencez au niveau local, optimisez le code que nous écrivons et réduisez le gaspillage de ressources nécessaire.
a. Évitez l'utilisation fréquente de nouveaux objets. Pour les classes qui n'ont besoin que d'une seule instance pour l'ensemble de l'application, nous pouvons utiliser le mode singleton. Pour les opérations de connexion String, utilisez StringBuffer ou StringBuilder, et les classes d'outils sont accessibles via des méthodes statiques.
b. Évitez d'utiliser de mauvaises méthodes et essayez de ne pas utiliser instanceof pour un jugement conditionnel. Utilisez des classes efficaces en Java, telles que ArrayList, qui offre de meilleures performances que Vector.
2. HTML statique
On accède via une adresse de lien, le module correspondant du serveur traite la requête, va à la page jsp correspondante, et enfin. génère nos données requises. Cependant, s'il y a des dizaines de millions de requêtes et qu'il y a trop de requêtes simultanées, cela augmentera la pression sur le serveur et, dans le pire des cas, le serveur sera arrêté. Alors comment éviter cette situation ? Si nous enregistrons le résultat de la demande initiale de test.do dans un fichier html, et que l'utilisateur accède ensuite à ce fichier html à chaque fois, de sorte qu'il n'est plus nécessaire d'accéder au serveur, la pression sur le serveur ne serait-elle pas réduit?
Comment générer automatiquement une page statique ? Lorsqu'un utilisateur la visite, test.html sera automatiquement généré puis affiché à l'utilisateur.
3. Séparation des serveurs d'images
Pour les serveurs Web, les images consomment le plus de ressources, il nous est donc nécessaire de séparer les images des pages. Une telle architecture peut réduire la pression sur le système serveur qui fournit les demandes d'accès aux pages et garantir que le système ne tombera pas en panne en raison de problèmes d'image. Sur le serveur d'images, nous pouvons optimiser différentes configurations.
4. Mise en cache
Le mécanisme de mise en cache avec lequel j'ai été en contact spécifiquement est le mécanisme de mise en cache d'Hibernate. Afin d'éviter d'obtenir des données de la base de données à chaque fois, nous mettons en mémoire les données auxquelles les utilisateurs accèdent souvent. Même lorsque le cache est très volumineux, nous pouvons mettre le cache en mémoire sur le disque dur. Il existe également l'utilisation de bases de données de cache distribuées avancées, qui peuvent augmenter la résistance au stress du système.
(Recommandations pour des questions d'entretien plus connexes : questions et réponses d'entretien Java)
Envoyer par lots
Travailler sur un projet. À cette époque, trop de paramètres étaient transmis en même temps, et la base de données stipulait que le nombre maximum de paramètres pouvant être transmis en même temps était de 30 000. Il y avait 50 000 enregistrements à cette époque, alors comment les transmettre ? En fin de compte, il est envoyé par lots. Si l'ascenseur ne peut pas accueillir autant de personnes à la fois, il signalera un bug de surpoids, les personnes seront donc envoyées par lots.
Une autre fois, dans le système d'examen, si autant de candidats se soumettaient à la base de données en même temps, la pression sur la base de données augmenterait et parfois elle tomberait en panne. La méthode utilisée à cette époque était d'utiliser ajax. transmission asynchrone sans attente. Lorsque le candidat clique sur le bouton Soumettre, les réponses du candidat sont automatiquement soumises. Cela évite également la perte des questions que le candidat a posées auparavant en cas de panne de courant soudaine.
6. Cluster de bases de données
Face à des applications complexes et à un grand nombre d'utilisateurs qui y accèdent, un ensemble de données sera bientôt incapable de répondre à la demande, nous devons donc utiliser un cluster de bases de données. ou hachage de table de base de données.
Nous installons des modules métiers et applicatifs ou fonctionnels dans l'application pour séparer les données. Différents modules correspondent à différentes bases de données ou tables, puis disséminons une certaine page ou fonction dans des bases de données plus petites selon une certaine stratégie.
7. Optimisation de la base de données
a. Lors de la conception de la base de données, nous devons considérer la maintenance ultérieure. Les trois paradigmes de la base de données sont les principes que nous devons suivre lors de la conception de la base de données.
b. Création d'index : La création d'index doit être appropriée. Si une table est souvent interrogée et rarement utilisée pour des ajouts et des modifications, nous pouvons créer un index pour cette table, car pour les opérations d'ajouts, de modifications et de suppression, notre la maintenance de l'index dépasse largement l'efficacité que l'index nous apporte.
c. La sélection du type des champs du tableau doit être appropriée
Y compris la longueur et le type des champs, etc., qui doivent être sélectionnés en fonction des données réellement stockées. être trop long, sinon cela affectera l'efficacité.
d. Les clés étrangères doivent être utilisées avec prudence, car la clé primaire représente cette table, et la clé étrangère représente un groupe de tables, qui associe les tables, nous devons les associer lors de la suppression, de la modification, etc. .
e. Dans les opérations de base de données
Essayez d'utiliser prepareStatement et utilisez l'instruction less, car PrepareStatement est précompilé.
La connexion est définie sur readOnly. La connexion est une connexion à la bibliothèque et est lourde. Nous pouvons simplement l'utiliser.
Grâce au pool de connexions, nous pouvons modifier le nombre de connexions par défaut dans la base de données.
Recommandations associées : Tutoriel d'introduction à Java
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!