Il fatto che questi diversi processi utilizzino connessioni separate è (soprattutto) irrilevante.
La solita preoccupazione è che l'apertura e la chiusura di una connessione sono costose in termini di tempo e risorse della CPU. Con molti database, questa preoccupazione non è valida a causa del pool di connessioni: esiste un sovraccarico la prima volta che ci si connette al database, ma la prossima volta che è necessario eseguire una query all'interno dello stesso processo, una connessione esistente viene riutilizzata sotto il cofano, anche se nel codice, hai chiuso esplicitamente la connessione.
Ciò che accadrà nel tuo caso è che pagherai il costo dell'apertura di venti connessioni la prima volta quando venti microservizi si avviano dopo, ad esempio, il server si riavvia. Una volta eseguita questa operazione, ciascun servizio riutilizzerà le connessioni già aperte in precedenza.
Quale sarebbe un problema se hai molti microservizi che accedono al database, o se il database, per una determinata ragione, non può accettare troppe connessioni. Dato che stai parlando di venti microservizi, non sarò preoccupato; ad esempio, "SQL Server consente un massimo di 32.767 connessioni utente." ( fonte ) Se si utilizza un database più esotico o un database che ha una configurazione esotica o se ogni servizio ha bisogno, per qualche ragione, di aprire molte connessioni contemporaneamente, questo potrebbe davvero diventare un problema.