Frage

ich brauche Identity Server wie Microsoft http://login.live.com .

So behandeln Failover ich mehrere Web-Server-Knoten haben. Der Plan ist, dass alle Datenbankschreiboperationen durch das Senden von Nachrichten an den Datenbank-Server durchgeführt werden. Datenbank gespiegelt oder repliziert werden. Die Idee ist, dass die Datenbank schließt sich der Schreiboperationen, sondern dass andere Knoten zeichnen auch. Auf diese Weise andere Knoten brauchen nicht aus der Datenbank zu lesen und ihre Caches aktualisieren.

Ich bin gerade erst die Service-Bus-Architektur zu lernen und was mir nicht klar, wie Failover-Szenario für den Servicebus zu behandeln.

Frage:

  1. Wenn Datenbankserver nicht verfügbar ist, was mit den veröffentlichten Meldungen passieren?
  2. Werden sie irgendwo gespeichert werden und wo?
  3. Brauche ich zusätzliche Maschine oder einen Cluster Griff Failover des Service Bus?
  4. Ich habe gelesen, dass SQL Server kann als Nachrichtenspeicher verwendet werden, aber kann ich dauerhaft MSMQ verwenden? Ich bin Warteschlangen Nachrichten zu können, um sie in die Datenbank schreiben, also warum sollte ich ihr die DB speichert zuerst nur um sie zu nehmen und schreibe sie wieder? OR, erhalte ich das falsch und DB ist nur für die Liste der Abonnements und nicht für die Nachrichten verwendet?
War es hilfreich?

Lösung

  1. Dies wird davon abhängen, wie es aufgebaut ist, aber in Masstransit können Sie das Abonnement aktiv verlassen, so wird die Nachricht noch in die Warteschlange für die DB geliefert werden. Wenn die DB wieder aktiv ist, können Sie die Nachrichten in der Warteschlange lesen.

  2. Jeder Dienst an einen Service-Bus verbunden ist, in Masstransit, hat eine aktive Warteschlange für sich. Die Nachrichten werden dort gespeichert.

  3. Ich denke, dies ist ein „es kommt“ ... Masstransit hat die Unterstützung für andere MQs als MSMQ aber wirklich um MSMQ gebaut. Wir haben keine große Unterstützung für Dinge wie Failover von MSMQ erfahren. Allerdings wird auch weiterhin alles ohne Fehler ausgeführt werden, wenn der Abo-Service (das heißt der Bus) ausfällt - die Dienste bereits wissen, wer zu sprechen. Es ist nur, wenn eine Änderung in einem Verbraucher (abonniert oder abmelden), wenn dies zu einem Problem wird. Für mich, das ist ein Ereignis, das so gut wie nie passiert.

  4. Mit Masstransit, verwenden wir die DB das Bezugszustand zu speichern, sondern alle die Nachrichten in MSMQ gespeichert.

Wenn Sie weitere Informationen in einer dieser Antworten möchten oder weitere Fragen zu MT, können Sie uns auf der Mailing-Liste: http://groups.google.com/group/masstransit-discuss .

Andere Tipps

Whe, das diese Art von Architektur Implementierung Sie bei Anwendung der Grundsätze der CQRS aussehen sollten - Abfragen (ist dieser Benutzer / PWD Combo gültig) nicht über den Bus erfolgen; Befehle (ändern PWD vergessen pwd) werden über den Bus, nicht veröffentlicht, wie Ereignisse gesendet. Während intern werden Sie wahrscheinlich Ereignisse verwenden Sie den Befehl und Abfrage Seiten synchron zu halten, bedeutet dies den Client nicht einzubeziehen.

Abfragen können mit einfachen ado.net gegen die replizierten-Lese-Sklaven Ihre DB getan werden - was als persistentes View-Modell in CQRS bekannt ist. Wenn Sie möchten, können Sie einige einfache WCF vor, dass setzen auch.

Wenn MSMQ verwenden, werden alle Nachrichten werden über geliefert Store-and-Forward. Das bedeutet, dass sie zuerst auf dem Client gespeichert, bevor sie an den Server geliefert wird, so dass, wenn der Server ist, sitzen die Nachrichten auf dem Client wartet. Für die Fehlertoleranz, werden Sie Ihre Nachrichten wollen einbringlich sein (auf die Festplatte geschrieben) - dies ist die Standardeinstellung in NServiceBus ist aber nicht der Standard von Standard MSMQ (weiß nicht über Masstransit). Sie haben nicht die Datenbank für diese benötigen.

In NServiceBus wird der Bus nicht auf einem separaten Rechner installiert, so dass Sie nicht brauchen, unabhängig vom Rest des Systems mit seiner Verfügbarkeit zu beschäftigen. Es ist nur, wenn Sie unsere Ihre Befehlsverarbeitung auf mehrere Knoten zu buchen, Skalierung, dass Sie die meldungsbasierte zum Lastenausgleich in NServiceBus, die für eine hohe Verfügbarkeit mit könnte prüfen (der Verteiler genannt) sollte auf einem Cluster oder fehlertoleranter Hardware installiert werden.

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