Wie designed man ein gutes loadbalanced System



  • Hallo Leute,

    ich denke das ich mit der Sprache C++ ganz gut klar komm (jedenfalls der 98 Standard).
    Nun bekomme ich in der Firma immer wieder mit das unserer Software nur Schwerfällig mit einem Loadbalancer zusammen spielt oder redundante systeme auch nicht richtig funktionieren oder auch nur schwerfällig.

    Meine Frage diesbezüglich ist glaub ich recht einfach aber auch komplex.
    Wie kann man ein System designen das es redundant funktioniert? Wir reden hier von Serversystemen.

    Also wir haben z.b. eine Software die von Source A einen Post-Request bekommt und diesen dann verarbeitet. Die verarbeiteten Daten sollen dann an Destination A gesendet werden.
    Soweit so gut.

    Nun Cached die Applikation aber die Sourcedaten und sendet nur quasi die daten weiter die sich ändern. Bei einem System mit einem Loadbalancer würde ja nur ein System den PostReuest bekommen und dadurch würde dann das ergebnis verfälscht werden da es sein kann das bei einem zweiten PostRequest nicht nur die Updates sondern alles geschickt wird, da der PostReuest diesmal an das zweite redundant konfigurierte System ging.

    Ich mache es momentan so das eine ReuestID oä. mit geschickt wird und die Redundantkonfigurierten systeme schreiben beide in die SELBE Datenbank. So können sie sich immer irgendwie bei jedem Event auf dem laufenden halten. (Also das System schreibt die Cacheupdates dann in die Datenbank und das andere liesst diese ein). Das Problem ist dabei aber dass das system nur wieder arbeiten kann wenn das andere fertig ist, da es ja die updates davon braucht... Also hat man keinen performancegewinn oä. von so einer konfiguration. Das ist nict weiter schlimm da es sich ja eher um Sicherheitsaspekte handelt.

    Ich frage mich aber ob es eine gute Idee ist da eine Datenbank zwischen zu schalten. Denn die Datenbank ist leider nicht redundant ausgelegt...

    Wie macht ihr sowas?

    Hilfesuchend und fragend,
    ComDotOrg



  • Was hat die Frage mit C++ zu tun?
    Nein, ich programmiere mit C++ ist keine gültige Antwort.



  • ComDotOrg schrieb:

    Also wir haben z.b. eine Software die von Source A einen Post-Request bekommt und diesen dann verarbeitet. Die verarbeiteten Daten sollen dann an Destination A gesendet werden.
    Soweit so gut.

    Nun Cached die Applikation aber die Sourcedaten und sendet nur quasi die daten weiter die sich ändern. Bei einem System mit einem Loadbalancer würde ja nur ein System den PostReuest bekommen und dadurch würde dann das ergebnis verfälscht werden da es sein kann das bei einem zweiten PostRequest nicht nur die Updates sondern alles geschickt wird, da der PostReuest diesmal an das zweite redundant konfigurierte System ging.

    Ich nehme an, Du meinst mit Software und Application hier das selbe? Also den Server(-Prozess)?
    Dann muss halt der Client auch nochmal schauen, ob er Daten kriegt, die er schon kennt und wegschnippeln. Falls er dann mal an den falschen Server/Application connectet, kostet das nur ein Mehr an Traffic. Und das kannste wieder reduzieren, indem die Clients ungerne wechseln.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten