Dove dovrebbe vivere un'API del database?

0

leggi questo articolo: link Stiamo progettando 2 microservizi: entrambi hanno tabelle in un db condiviso. Quello che mi chiedo è se costruisco un'API che fornisce l'accesso a questi gruppi di tabelle ... dove dovrebbe essere installata questa API (HTTP REST)? su un server delle applicazioni separato? o direttamente sul server del database stesso? Mi sto appoggiando a un server APP separato in modo che possa far ruotare il maggior numero di app server di cui potrei avere bisogno in futuro; e che l'unico stato del posto è mantenuto sul server del database stesso ... ma vuole essere sicuro al 100%.

    
posta dot 06.11.2018 - 18:01
fonte

1 risposta

0

I microservizi forniscono un'API ai loro dati. I servizi stessi possono accedere direttamente ai propri dati, non c'è bisogno di aggiungere un'astrazione addizionale in mezzo. In questo senso, il database è un dettaglio di implementazione di un microservizio.

Se vuoi esporre un'API diversa dall'offerta dei microservizi, sarebbe un servizio separato o una specie di gateway API, ma questa API non dovrebbe conoscere direttamente i database.

In ogni caso, costruisci solo ciò di cui hai bisogno. Puoi rifattorizzare la struttura interna in un secondo momento se si è dimostrata inadatta. Ad esempio, se si distribuiscono i microservizi in locale per i client, è possibile che si desideri interfacciare con qualsiasi sistema di database che il client utilizza già. Quindi, un qualche tipo di servizio di persistenza per astrarre qualsiasi differenza potrebbe avere senso.

Si noti che "server" può significare sia "un software che risponde alle richieste" sia "un componente hardware che si trova in un rack". Ogni microservizio dovrebbe essere il proprio server software, sebbene possa condividere l'hardware. Tuttavia, i database più grandi hanno requisiti hardware univoci, nel qual caso non si dovrebbero eseguire altri servizi sull'hardware del database. In un'impostazione cloud, tutto ciò sarebbe comunque sottratto, soprattutto quando si utilizza un meccanismo di orchestrazione dei contenitori.

    
risposta data 07.11.2018 - 15:08
fonte

Leggi altre domande sui tag