Heim  >  Artikel  >  Java  >  Java-Interview – Verarbeitung mit hoher Parallelität

Java-Interview – Verarbeitung mit hoher Parallelität

王林
王林nach vorne
2020-11-23 16:06:123613Durchsuche

Java-Interview – Verarbeitung mit hoher Parallelität

Hochparallele Verarbeitungsmethode:

(Lernvideo-Sharing: Java-Lehrvideo)

1. Beginnen Sie an der grundlegendsten Stelle, optimieren Sie den von uns geschriebenen Code und reduzieren Sie die notwendige Ressourcenverschwendung.

a. Für Klassen, die nur eine Instanz für die gesamte Anwendung benötigen, können wir den Singleton-Modus verwenden. Verwenden Sie für String-Verbindungsvorgänge StringBuffer oder StringBuilder, und auf Toolklassen kann über statische Methoden zugegriffen werden.

b. Vermeiden Sie die Verwendung falscher Methoden und versuchen Sie, Instanzen nicht für die bedingte Beurteilung zu verwenden. Verwenden Sie effiziente Klassen in Java, z. B. ArrayList, die eine bessere Leistung als Vector bieten.

2. HTML-Statik

Wir greifen über eine Linkadresse zu, das entsprechende Modul des Servers verarbeitet die Anfrage, geht zur entsprechenden JSP-Seite und generiert schließlich die gewünschten Daten. Wenn es jedoch zig Millionen Anfragen gibt und es zu viele gleichzeitige Anfragen gibt, erhöht sich der Druck auf den Server, und im schlimmsten Fall kommt es zum Ausfall des Servers. Wie kann man diese Situation vermeiden? Wenn wir das Ergebnis der ersten Anfrage für test.do in einer HTML-Datei speichern und der Benutzer dann jedes Mal auf diese HTML-Datei zugreift, sodass kein Zugriff mehr auf den Server erforderlich ist, wäre der Druck auf den Server nicht größer reduziert?

Wie erstelle ich automatisch eine statische Seite? Wenn ein Benutzer sie besucht, wird test.html automatisch generiert und dann dem Benutzer angezeigt.

3. Bildserver-Trennung

Bei Webservern verbrauchen Bilder die meisten Ressourcen, daher ist es für uns notwendig, Bilder von Seiten zu trennen. Wir legen Bilder auf einem unabhängigen Bildserver ab. Eine solche Architektur kann den Druck auf das Serversystem, das Seitenzugriffsanfragen bereitstellt, verringern und sicherstellen, dass das System nicht aufgrund von Bildproblemen abstürzt. Auf dem Bildserver können wir verschiedene Konfigurationen optimieren.

4. Caching

Der Caching-Mechanismus, mit dem ich speziell in Kontakt gekommen bin, ist der Caching-Mechanismus von Hibernate. Um zu vermeiden, dass jedes Mal Daten aus der Datenbank abgerufen werden, legen wir die Daten, auf die Benutzer häufig zugreifen, im Speicher ab. Selbst wenn der Cache sehr groß ist, können wir den Cache im Speicher auf der Festplatte ablegen. Darüber hinaus werden fortschrittliche verteilte Cache-Datenbanken verwendet, die die Stressresistenz des Systems erhöhen können.

(Empfehlungen für weitere verwandte Interviewfragen: Java-Interviewfragen und -antworten)

5. Stapelübertragung

Bei der Arbeit an einem bestimmten Projekt werden zu viele Parameter gleichzeitig übergeben und die Datenbank legt die maximale Anzahl fest Anzahl der Parameter, die gleichzeitig übergeben werden können. Zu diesem Zeitpunkt waren es 50.000 Datensätze. Wenn der Aufzug nicht so viele Personen gleichzeitig aufnehmen kann, wird ein Übergewichtsfehler gemeldet, sodass die Personen gruppenweise nach oben geschickt werden.

Ein anderes Mal im Prüfungssystem würde sich der Druck auf die Datenbank erhöhen, wenn sich so viele Prüflinge gleichzeitig bei der Datenbank anmelden würden. Die damals verwendete Methode bestand darin, die asynchrone Ajax-Übertragung ohne Wartezeit zu verwenden Damit die Kandidaten auf die Schaltfläche „Senden“ klicken können, werden die Antworten des Kandidaten automatisch übermittelt, wodurch vermieden wird, dass die Fragen, die die Kandidaten zuvor gestellt haben, aufgrund eines plötzlichen Stromausfalls verloren gehen.

6. Datenbankcluster

Bei komplexen Anwendungen und einer großen Anzahl von Benutzern, die darauf zugreifen, wird ein Datensatz bald nicht mehr in der Lage sein, den Bedarf zu decken, sodass wir einen Datenbankcluster oder Datenbanktabellen-Hashing verwenden müssen.

Wir installieren Geschäfts- und Anwendungs- oder Funktionsmodule in der Anwendung, um die Daten zu trennen. Verschiedene Module entsprechen verschiedenen Datenbanken oder Tabellen und führen dann kleinere Datenbank-Hashings auf einer bestimmten Seite oder Funktion gemäß einer bestimmten Strategie durch.

7. DB-Optimierung

a. Beim Entwerfen der Datenbank müssen wir die drei Paradigmen der Datenbank berücksichtigen.

b. Indexerstellung: Wenn eine Tabelle häufig für Abfragen und selten für Ergänzungen und Änderungen verwendet wird, können wir für Ergänzungen, Änderungen und Löschungen einen Index erstellen Der Index übertrifft die Effizienz, die der Index uns bringt, bei weitem.

c. Die Typauswahl der Tabellenfelder muss angemessen sein

Einschließlich der Länge und des Typs der Felder usw. Die Auswahl sollte auf den tatsächlich gespeicherten Daten basieren. Die Länge sollte nicht zu lang sein, da dies sonst die Effizienz beeinträchtigt .

d. Fremdschlüssel sollten mit Vorsicht verwendet werden, da der Primärschlüssel diese Tabelle darstellt und der Fremdschlüssel eine Gruppe von Tabellen darstellt, die wir beim Löschen, Ändern usw. zuordnen müssen.

Bei Datenbankoperationen

versuchen Sie, PrepareStatement und weniger Anweisungen zu verwenden, da PrepareStatement vorkompiliert ist.

Connection ist auf readOnly eingestellt. Es handelt sich um eine Verbindung zur Bibliothek, die wir einfach verwenden können.

Durch die Verwendung des Verbindungspools können wir die Standardanzahl der Verbindungen in der Datenbank ändern.

Verwandte Empfehlungen: Java-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonJava-Interview – Verarbeitung mit hoher Parallelität. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen