Ich schreibe einen Anwendungsserver (wiederum nicht verwandt mit einer Frage, die ich hier bereits geschrieben habe) und frage mich, welche Strategien beim Erstellen von Worker-Threads für die Datenbank verwendet werden sollen. Einige vorläufige Daten: Der Server empfängt xml und sendet xml zurück, alle Anfragen fragen eine Datenbank ab - jede Anfrage kann ein paar Millisekunden bis zu einigen Sekunden dauern.Anzahl der Threads in einer Middleware-Anwendung
Sagen Sie zum Beispiel, dass Ihr Server eine kleine bis mittlere Anzahl von Clients bedient, die wiederum eine kleine Anzahl von Anfragen pro Verbindung senden. Ist es sicher, einen Worker-Thread pro Verbindung zu haben oder sollte es pro Anfrage sein? Sollte auch ein Thread-Pool verwendet werden, um die Ressourcen zu begrenzen, die vom Server verwendet werden, oder sollte ein Worker bei jeder neuen Verbindung/Anfrage hinzugefügt werden?
Sollte der Server die Anzahl der erstellten Threads auf einen oberen Grenzwert begrenzen?
Hoffe, ich bin nicht zu vage ... Ich kann kaum meine Augen offen halten.
Nicht alle von uns denken, dass das, was in der Vergangenheit getan wurde, der Höhepunkt menschlicher Errungenschaften ist. –
Offensichtlich, aber es wurde getan. Manchmal ist der schnellste Code zum Schreiben der Stoff, den Sie gerade von jemand anderem verwenden. Es ist für mich überhaupt nicht klar, wie eine Green-Field-Lösung das bisher Erreichte verbessern wird, insbesondere wenn das Verständnis für vergangene Praxis so gering ist, dass eine solche Frage gestellt werden muss. – duffymo
es geht nicht um dich - es geht um den Benutzer. Wenn Sie einen leistungsfähigeren Server schreiben können, profitieren Ihre Benutzer, auch wenn Sie länger brauchen, um sie zu schreiben. Manchmal ist ein für Ihr spezielles Szenario optimierter Server besser als die generischen Versionen, die jemand anderes geschrieben hat. – gbjbaanb