Mysql
 sql >> Database >  >> RDS >> Mysql

Il proxy RDS influisce sul pool lato applicazione corrente?

Con un proxy di database nel mezzo, ci sono due gambe separate per una "connessione":

  1. In primo luogo, esiste una connessione dall'applicazione al proxy. Quello che hai chiamato "pooling lato applicazione" è questo tipo di connessione. Poiché c'è ancora un sovraccarico associato alla creazione di una nuova istanza di questo tipo di connessione, continuare a utilizzare un pool di connessioni nella tua applicazione è probabilmente una buona idea.
  2. Secondo, c'è una connessione dal proxy al database. Queste connessioni sono gestite dal proxy. Il numero di connessioni di questo tipo è controllato da una configurazione proxy. Se imposti questa configurazione al 100%, consenti al proxy di utilizzare fino a il max_connections del database valore e altri client potrebbero essere affamati di connessioni.

Quindi, quando la tua applicazione vuole usare una connessione, deve ottenere una connessione dal suo pool locale. Quindi, il proxy deve associarlo a una connessione al database. Il proxy riutilizzerà le connessioni al database ove possibile (questa tecnica è anche chiamata multiplexing ).

Oppure, citando i documenti ufficiali:"Puoi aprire molte connessioni simultanee al proxy e il proxy mantiene un numero minore di connessioni aperte all'istanza database o al cluster. In questo modo si riduce ulteriormente il sovraccarico di memoria per le connessioni sul server del database. Questo la tecnica riduce anche la possibilità di errori di "troppe connessioni".