REST e RPC in API multilivello

0

Il mio team sta sviluppando un'API multilivello con scalabilità e modularità in mente. Il punto di accesso pubblico dell'API è completamente REST. Tuttavia, stiamo dividendo il livello di accesso ai dati come un altro livello nella nostra architettura e questo strato si troverà su un altro server fisico. Abbiamo deciso che RPC sarebbe un buon protocollo di comunicazione tra l'API pubblica e il livello di accesso ai dati privato.

Abbiamo deciso di utilizzare RPC su REST per la comunicazione privata tra i nostri livelli perché:

  • Evita il REST instrada la duplicazione tra ogni livello
  • Trasparenza nell'esecuzione di codice / funzioni su server diversi
  • La comunicazione è privata. Con una buona documentazione non dovrebbero esserci problemi per il team per capire il protocollo di comunicazione.

La mia domanda è:

  • Abbiamo perso vantaggi o svantaggi nella scelta del protocollo di comunicazione per la comunicazione privata tra i livelli?
  • Che cosa è normalmente utilizzato per le comunicazioni tra i livelli in un'architettura multilivello, in particolare per le API Web?
posta Chris911 11.02.2014 - 00:10
fonte

1 risposta

1

Non sono un esperto di applicazioni di ridimensionamento, ma cercherò di rispondere almeno parzialmente alla tua domanda.

REST ha 3 vincoli che riguardano la scalabilità:

  • vincolo stateless

    Devi mantenere le sessioni sul lato client e sul lato server devi autenticare ogni singola richiesta. Quindi puoi facilmente utilizzare più server, perché non hai bisogno di una sessione di archiviazione condivisa.

  • vincolo di cache

    Devi inviare le intestazioni della cache ad ogni richiesta. Quindi i tuoi clienti possono memorizzare nella cache le risposte memorizzabili nella cache e quindi inviano meno richieste.

  • vincolo di sistema a livelli

    I componenti del sistema non possono vedere attraverso i limiti del singolo livello in cui si trovano. Il livello superiore usa i servizi del livello corrente e il livello corrente usa i servizi dei livelli inferiori e così via ... Quindi tu può aggiungere bilanciamento del carico, cache, ecc. tra il client e il servizio, non riconoscono l'esistenza di tali componenti.

Penso che traducendo REST in RPC i vantaggi del sistema stratificato il vincolo non viene perso per niente.

    
risposta data 18.09.2014 - 15:54
fonte

Leggi altre domande sui tag