2016-07-25 2 views
0

Ich bin auf der Suche nach was sind die am häufigsten verwendeten/Best Practices in der Industrie.Wie gehen Sie mit Problemen um, wenn wir keine Verbindungen zur Datenbank mehr haben?

Gehen Sie von dem folgenden hypothetischen Szenario aus: Wenn mein Anwendungsserver 200 Benutzeranfragen akzeptiert und jeder von ihnen DB-Zugriff benötigt. Aber meine DB max_connections sind 100.

Wenn alle 200 Benutzer gleichzeitig anfragen, aber wir haben nur 100 max_connections, was passiert mit den anderen Anfragen, die nicht maximale Verbindungen serviert wurden?

In der realen Welt:

  1. werden verbleibenden 100 Anfragen in einer Art einer Warteschlange auf Apps Servern gespeichert werden und gehalten für DB-Verbindungen warten?

  2. Haben wir einen Fehler?

Antwort

0

Grundsätzlich, wenn der Datenbankserver nur 100 Verbindungen verarbeiten kann, und alle Ihre Web-Verbindungen „benötigen Zugriff auf die Datenbank“ Sie müssen dafür sorgen, dass nicht mehr als 100 Anfragen erlaubt sind aktiv auf sein jeden Augenblick.   Dies ist die “ Randbedingung ” dieses Szenarios.   (Es kann eine von vielen sein.)

können Sie „bis zu 200 gleichzeitige Verbindungen“ auf Ihrem Server akzeptieren, aber Sie müssen enqueue diese Anforderungen, so dass die Grenze von 100 aktiven Anfragen nicht übertroffen.

Es gibt viele, viele Möglichkeiten, das zu tun:   Load Balancer, Anwendungsserver, sogar Apache/nginix-Richtlinien. Manchmal ist die Webseite nur ein Front-End für einen Prozess, der unter vielen verschiedenen Servern aufgeteilt ist, die parallel arbeiten. Egal, wie Sie es tun, es muss eine Möglichkeit geben, zu regulieren, wie viele Anfragen aktiv sind, und den Rest anzuordnen.

auch zur Kenntnis, dass, obwohl Sie “ 200 aktive Verbindungen ” auf Ihren Webserver haben könnten, ist es höchst unwahrscheinlich, dass alle 200 dieser Kunden “ ihre Maus genau gleichzeitig bei geklickt. ”   Anfragen kommen mit zufälligen Raten und daher möglicherweise überhaupt keine Verzögerung auftreten. Aber Ihr System muss trotzdem so konstruiert sein, dass es den schlimmsten Fall bewältigt.

Verwandte Themen