Frage

warum nicht Sie mehr Menschen mit REST-Architektur für Client-Server-System. Sie sehen, wie Menschen Sockets oder TIBCO RV oder EMS oder MQ, aber ich habe nicht viel Grund-REST-Architektur

gesehen

weiß jemand einen Grund, warum Sie für den Client / Server-Kommunikation dieser Architektur vermeiden würden mit für hohen Durchsatz / niedrige Latenz

War es hilfreich?

Lösung

Ich weiß nicht, dass ich es unbedingt vermeiden würde, aber ich kann von ein paar Gründe ein, warum ich es nicht für einen hohen Durchsatz, geringe Latenz Service wählen könnten. Zuerst müssen Sie mit dem gesamten Web Stack umgehen Ihre Nachricht an Ihren Service zu erhalten. Dies könnte eine Reihe von unnötigen Schichten und Dienste einführen, die Nachrichten verzögern würde. Ein benutzerdefinierter Service braucht nur die Protokollschichten unterstützen, indem du den Dienst selbst erforderlich ist.

Zweitens, es sei denn, Ihr Dienst der einzige Dienst auf dem Web-Server gehostet ist, werden Sie mit anderen Anfragen für Ihre Nachrichten werden im Wettbewerb gewartet werden. Während eines benutzerdefinierten Endpunkt für Ihren Dienst haben, können alle Ressourcenkonflikte Probleme nicht lösen, zumindest Sie müssen für von anderen Diensten zu Ihrem Endpunkt keinen Zugang zu konkurrieren.

Drittens wird ein eigenes Protokoll braucht nur die eigentlichen Dienst bezogenen Protokollinformationen zu unterstützen und in kleineren Paketgrößen führen kann, weil Sie nicht den zusätzlichen HTTP-Protokoll-Overhead unterstützen müssen. Dies würde insbesondere Protokolle bewirken, dass kleine Nachrichten als die Header-Informationen austauschen würden ein größerer Anteil der Nachrichtengröße sein.

Andere Tipps

REST ist nicht eine gute Passform für jedes Problem.

REST ist am besten für Resource Management. Wenn Sie Web-Service schreiben (wie bei einem Client-Server-System), dann mögen Sie finden Sie Dinge wie sprachunabhängig Datendarstellung, Argumentüberprüfung, Client / Server-Code-Generierung, Fehlerbehandlung, Zugangskontrollen. REST erfordert, dass Sie im Grunde selbst diese Dinge zu codieren.

Auf der anderen Seite, fügt es die HTTP-Schicht. Sie erhalten eine nahtlose Integration von Proxies, Caching usw., aber Sie tun etwas Geschwindigkeit aufgrund HTTP-Header verlieren, den Webserver-Frontend, etc.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top