Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Beeinflusst der RDS-Proxy das aktuelle anwendungsseitige Pooling?

Mit einem Datenbank-Proxy in der Mitte gibt es zwei separate Zweige zu einer "Verbindung":

  1. Zuerst gibt es eine Verbindung von der Anwendung zum Proxy. Das, was Sie als "anwendungsseitiges Pooling" bezeichnet haben, ist diese Art von Verbindung. Da das Erstellen einer neuen Instanz dieses Verbindungstyps immer noch mit Overhead verbunden ist, ist es wahrscheinlich eine gute Idee, weiterhin einen Verbindungspool in Ihrer Anwendung zu verwenden.
  2. Zweitens gibt es eine Verbindung vom Proxy zur Datenbank. Diese Verbindungen werden vom Proxy verwaltet. Die Anzahl der Verbindungen dieses Typs wird durch eine Proxy-Konfiguration gesteuert. Wenn Sie diese Konfiguration auf 100 % festlegen, gestatten Sie dem Proxy die Verwendung von bis zu die max_connections der Datenbank Wert , und andere Clients können für Verbindungen ausgehungert werden.

Wenn Ihre Anwendung also eine Verbindung verwenden möchte, muss sie eine Verbindung aus ihrem lokalen Pool erhalten. Dann muss der Proxy dies mit einer Verbindung zur Datenbank koppeln. Der Proxy verwendet nach Möglichkeit Verbindungen zur Datenbank wieder (diese Technik wird auch als Multiplexing ).

Oder, um die offiziellen Dokumente zu zitieren:„Sie können viele gleichzeitige Verbindungen zum Proxy öffnen, und der Proxy hält eine kleinere Anzahl von Verbindungen zur DB-Instance oder zum Cluster offen. Dadurch wird der Arbeitsspeicher-Overhead für Verbindungen auf dem Datenbankserver weiter minimiert. Dies Technik verringert auch die Wahrscheinlichkeit von "zu viele Verbindungen"-Fehlern."