Proxyying dati binari attraverso un servizio RESTful

0

Ho un'applicazione, un servizio web P, che funge da proxy tra un servizio interno, IS e un servizio esterno, ES.

Al momento, quando IS invia una richiesta a ES attraverso P, e la risposta contiene dati binari, P memorizza i dati binari in una posizione temporanea. P invia quindi la posizione insieme al resto della risposta da ES a IS. IS ed ES sono comunicazioni attraverso un'API RESTful.

Per alcuni motivi storici, la posizione temporanea è al di fuori della rete in cui P e IS sono, quindi è costoso in termini di tempo. Sto cercando le possibilità di ottimizzare questo flusso, ed è lì che ho bisogno del tuo consiglio .:) Ho le seguenti opzioni:

  1. Codifica i dati binari da ES utilizzando Base64 e invialo come tale a IS.
    1. Pro: facile da codificare e non sono necessarie modifiche importanti.
    2. Con: la codifica richiede risorse CPU e aumenta la dimensione della risposta.
  2. Utilizza un formato dati che gestisca i dati binari più "naturalmente", come BSON o CBOR.
    1. Pro: importanti modifiche al codice necessarie.
    2. Con: la soluzione sembra più naturale. Tuttavia, non ho usato CBOR prima, e ho usato BSON solo un po '(principalmente nel codice client), quindi non so davvero se ci sono alcune trappole.
  3. Mantieni le cose come sono, ad esempio continua a utilizzare la posizione temporanea.
    1. Pro: Nessuna modifica .:) Nessun sovraccarico della CPU e nessuna modifica importante.
    2. Con: costoso in termini di tempo.

In qualche modo sono più incline al # 1, perché se # 3 richiede già molto tempo, allora # 1 non dovrebbe richiedere molto più tempo per ogni oggetto elaborato. Tuttavia, non ho avuto esperienza con la codifica Base64 massiccia e non so quali potrebbero essere le insidie. Il numero 2 è l'ultimo.

Inoltre, essendo un proxy, P non è realmente affamato di CPU, quindi potremmo avere qualche spazio CPU rimasto.

Quali sono i tuoi pensieri e consigli qui?

    
posta Haris Osmanagić 30.03.2018 - 18:43
fonte

0 risposte

Leggi altre domande sui tag