Frage

kann ich die Stateful-Protokolle sehen führen zu weniger verpfuschten zusammen ‚emulierten Zustand‘ wie Cookies.

aber Tests werden viel schwieriger, um sicherzustellen, dass Ihre Implementierung korrekt ist, und schließt wieder, und Sitzungs Fortsetzungen können sehr schwer zu handhaben.

Ist es besser Praxis betrachtet immer Zustandslosigkeit zu verwenden, oder ist es wirklich domänenspezifische?

ich glaube, dass die Authentifizierung einfacher wird, wenn sie mit Stateful-Protokollen zu tun, aber gibt es andere Gründe, warum Sie ein Stateful-Protokoll verwenden sollten?

War es hilfreich?

Lösung

Wie wichtig Zustand Ihrer Anwendung ist? Sie benötigen einen konstanten Datenfluss zwischen verschiedenen Maschinen oder ist es sinnvoller, platzt zu haben? Wenn Sie eine IP-Telefonie-Typ Anwendung schreiben dann wirst du wahrscheinlich etwas ziemlich Stateful wollen, wenn Sie mit staatenlos wegkommen kann es wahrscheinlich billiger und einfacher zu sein, es so zu tun. Dinge zustandsvoll zu tun, ist notwendigerweise zerbrechlicher denn wenn entweder Ende der Verbindung fallen gelassen wird oder die Verbindung selbst untergeht Sie ein höheres Risiko von Datenverlust führen, während bei einer stateless Verbindung Sie sind eher nur für eine Weile warten müssen und versuchen, wieder.

Sie sind wirklich verschiedene Werkzeuge für verschiedene Aufgaben, aber die Leichtigkeit und Allgegenwärtigkeit von staatenlos Technologien Online ist es logisch, zu sehen in dieser Richtung gegeben, wenn Sie die Möglichkeit haben.

Andere Tipps

Vorteile von stateless:

  1. Hohe Skalierbarkeit (Sie Anforderung an jeden Knoten senden können, können Sie Knoten jederzeit hinzufügen können)
  2. Hohe Verfügbarkeit (wenn ein Knoten ausfällt, gibt es keinen Staat, der verloren geht, sendet nur Anforderung an einem anderen Knoten)
  3. Hochgeschwindigkeits (da es kein Staat ist, sind die Ergebnisse zwischenspeicherbar)

Ich würde es domänenspezifische betrachten. Wenn Sie das moralische Äquivalent von Ping schreiben, ein zustandsloses Protokoll ist die richtige Wahl. Auf der anderen Seite, wenn Sie einen VNC schreiben, Stateful ist sicherlich der Weg zu gehen.

Was, wenn zu entscheiden, welche gibt es zwei Punkte im Auge zu behalten. Erstens, während die Umsetzung Entscheidungen sind entweder / oder, das Problem Raum ein Kontinuum. Alles reale Welt Aufgaben haben zumindest ein wenig Zustand, ist die Frage, wie viel und ist der Overhead vorbei es um die Mühe wert es an beiden Enden zu verfolgen. Und zweitens werden Sie in der Regel mit einem Protokollstapel handeln, nicht ein einziges Protokoll; um sicherzustellen, dass alles auf der richtigen Ebene lebt enorm Dinge vereinfachen kann.

Ein zustandsloses Protokoll ist einfacher clustern, da Staat nie von 1 Server auf einem anderen auf nachfolgende Anfragen übertragen werden muss.

Ich bin nicht persönlich vertraut mit all den Designfragen von Stateful gegen staatenlos, aber ich weiß, dass NFSv4 Stateful Wert von früheren Versionen von NFS staatenlos ist, nach 15 Jahren ist so offensichtlich wurde Staatenlosigkeit eine erhebliche Einschränkung für die NFS-Designer.

Ein paar Minuten Googeln zeigt mehrere Artikel und Blogs sprechen über NFSv4 des Statusbehaftung; dies sollte eine interessante Lektüre sein beteiligt für einige der Design-Fragen.

Eine andere nette Sache mit Zustandslosigkeit ist, dass es einfacher ist, Server-Failover Situationen und / oder Clustering / Load-Balancing Situationen.

Stateful ist besser. Dann müssen Sie nicht der Staat die ganze Zeit zu senden. Das Protokoll wird dann einfacher.

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