Entwerfen für Skalierbarkeit

Skalierbarkeit ist die Fähigkeit einer Anwendung, eine zusätzliche Last mit einem linearen Anstieg der Ressourcennutzung zu verarbeiten. Skalierbarkeit ist in jeder verteilten Anwendung wichtig. Skalierbarkeitsbeschränkungen sind in der Regel auf ressourcennutzung und Abhängigkeiten ausgerichtet, die versehentlich im Anwendungsentwurf erstellt wurden.

In der folgenden Liste werden Skalierbarkeitsprobleme beschrieben und Lösungen vorgeschlagen:

  • Computerinterne Ressourcen. Die Anzahl der verfügbaren Threads und der verfügbare Arbeitsspeicher können die Skalierbarkeit einschränken. Verwenden Sie ein Threadingmodell, das für Ihre Anwendung am effizientesten ist.

  • Computerübergreifende Ressourcen. Die Anzahl der verfügbaren Computer zum Verteilen der Anwendungsworkload kann sich auf die Skalierbarkeit auswirken.

  • Clientaffinität. Zwei Situationen der Affinität können versehentlich von einer Anwendung erstellt werden: eine Situation, in der die Anwendung vom Zustand der Daten abhängt, die der Client mit seiner Anforderung sendet; und eine Situation, in der die Anwendung einen clientspezifischen Zustand erfordert. Vermeiden Sie das Entwerfen von Zustandsabhängigkeiten zwischen dem Client und der Anwendung.

  • Serveraffinität. Eine COM+-Anwendung kann ihre Skalierbarkeit einschränken, indem sie eine Serveraffinität erstellt, bei der die Anwendung von einem bestimmten Servercomputer abhängig ist, um Informationen zu erhalten. Diese Affinität kann bei vielen datenbankorientierten Anwendungen auftreten. Die beste Möglichkeit, einen Engpass mit Serveraffinität zu vermeiden, besteht darin, Daten auf verschiedenen Servercomputern zu partitionieren. Teilen Sie z. B. Kundendaten auf Server nach dem schlüssel, auf den am häufigsten zugegriffen wird, oder spannen Sie eine Kundendatenbank über mehrere Server unter Verwendung des Nachnamens des Kunden (z. B. Server1: a-f, Server2: g-m, Server3: n-z).

    Hinweis

    Die Datenpartitionierung kann die Programmierlogik erheblich komplexer machen und sollte erst durchgeführt werden, nachdem andere Optionen zur Erhöhung der Skalierbarkeit ausprobiert wurden.

     

  • Objektlebensdauer. Um skalierbar zu sein, muss eine COM+-Anwendung die Lebensdauer von Objekten genau berücksichtigen. Während ein Objekt vorhanden ist, verbraucht es Ressourcen. Es ist wichtig sicherzustellen, dass die Lebensdauern von Objekten, die teure Ressourcen enthalten, sorgfältig verwaltet werden. Für Objekte mit hoher Nachfrage, die keine teuren Ressourcen verbrauchen, kann COM+-Objektpooling die Skalierbarkeit erhöhen, da Sie die Poolingwerte administrativ anpassen können, um die Vorteile ihrer Hardware zu nutzen. Und es ist eine natürliche Möglichkeit, Verbindungen zu steuern: Wenn Sie beispielsweise über eine Lizenz für 20 SQL-Verbindungen verfügen, können Sie dies mit der Einstellung Max Pool diktieren.

  • Gruppierung von Anwendungskomponenten. Um die Skalierbarkeit einer COM+-Anwendung zu verbessern, sollten die Komponenten der mittleren Ebene in zeitabhängige und zeitunabhängige Dienste unterteilt werden. Dadurch können Sie sich auf die verwendung eines Microsoft Windows-Diensts konzentrieren, um eine erforderliche Komponentenaktion zu implementieren. Sie können beispielsweise einen Dienst wie Message Queuing oder COM+-Komponenten in der Warteschlange verwenden, um zeitunabhängige, asynchrone Aufgaben zu verarbeiten.

Entwerfen für Verfügbarkeit

Entwerfen für die Bereitstellung

Entwerfen für Die Sicherheit