2016-05-03 46 views
5

Sto usando gRPC per impaginare una chiamata e sto cercando di capire le opzioni per farlo/approssimazione per esso. È una domanda sensata da chiedere? Quali sono alcune risorse che posso usare per fare questo?Impaginazione in gRPC

risposta

1

L'impaginazione è molto simile ai carichi di dati binari in blocchi. La mia risposta in gRPC + Image Upload vale probabilmente una lettura.

Detto questo, l'impaginazione può avere diversi compromessi, in quanto di solito è molto più bassa velocità di trasmissione e talvolta non è così difficile da utilizzare richieste separate. Il basso throughput può impedire al controllo del flusso di essere avviato abbastanza presto da renderlo utile. L'utilizzo di richieste separate è più difficile per risultati completamente dinamici, come i risultati di ricerca, ma potrebbe non essere un problema per i dati più statici, come i figli di una risorsa.

Poiché il controllo del flusso gRPC può bufferizzare troppo, un'opzione aggiuntiva consiste nell'utilizzare lo streaming ma introdurre il controllo del flusso a livello di applicazione. Con il controllo del flusso a livello di applicazione si utilizzano i messaggi sullo streaming per richiedere quante risposte si desidera, il che non è troppo difficile da utilizzare o implementare. Si è parlato di supportare un controllo del flusso preciso basato sui messaggi in gRPC in modo nativo (che in questo caso produrrebbe risultati simili), ma non è chiaro se e quando ciò accadrebbe.

0

Questa domanda è abbastanza vecchia ma sento che manca qualcosa alla risposta.

Mentre lo streaming è preferito da IMHO, ho casi in cui l'impaginazione "tradizionale" è piuttosto utile. Immaginiamo un servizio user che abilita l'accesso CRUD a un negozio utente e ha un ListUsers e un SearchUsers rpc. Avere il risultato tra le pagine è molto più comodo qui.

Io personalmente uso l'approccio di Google a questo: https://github.com/googleapis/googleapis/blob/master/google/cloud/resourcemanager/v2/folders.proto