Domanda

perché non vedi più persone che usano l'architettura REST per il sistema server client. Vedi persone che usano socket o TIBCO RV o EMS o MQ ma non ho visto molta architettura REST di base

qualcuno conosce qualche motivo per cui dovresti evitare di usare questa architettura per la comunicazione client / server per alta attraverso put / bassa latenza

È stato utile?

Soluzione

Non so che lo eviterei necessariamente, ma riesco a pensare a un paio di ragioni per cui potrei non sceglierlo per un servizio ad alta produttività e bassa latenza. Innanzitutto, devi gestire l'intero stack Web per inviare il tuo messaggio al tuo servizio. Ciò potrebbe introdurre una serie di livelli e servizi non necessari che ritarderebbero i messaggi. Un servizio personalizzato deve supportare solo i livelli di protocollo richiesti dal servizio stesso.

In secondo luogo, a meno che il tuo servizio non sia l'unico servizio ospitato sul server Web, competerai con altre richieste per la manutenzione dei tuoi messaggi. Pur avendo un endpoint personalizzato per il tuo servizio potrebbe non risolvere tutti i problemi di contesa di risorse, almeno non devi competere per l'accesso da altri servizi al tuo endpoint.

In terzo luogo, un protocollo personalizzato deve supportare solo le informazioni sul protocollo relative al servizio effettivo e può comportare dimensioni di pacchetti inferiori poiché non è necessario supportare l'overhead del protocollo HTTP aggiuntivo. Ciò inciderebbe in particolare sui protocolli che scambiano piccoli messaggi poiché le informazioni dell'intestazione sarebbero una frazione maggiore delle dimensioni del messaggio.

Altri suggerimenti

REST non è adatto per ogni problema.

REST è il migliore per la gestione di Risorse . Se stai scrivendo servizi Web (come con un sistema client-server), allora trovi cose come la rappresentazione dei dati indipendente dalla lingua, la convalida degli argomenti, la generazione di codice client / server, la gestione degli errori, i controlli di accesso. Fondamentalmente, REST richiede di codificare queste cose da soli.

D'altra parte, aggiunge il livello HTTP. Ottieni una perfetta integrazione di proxy, cache ecc., Ma perdi un po 'di velocità a causa delle intestazioni HTTP, del frontend del server web, ecc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top