Ich habe im Bereich eingebettete Systeme und Systemprogrammierung für Hardware-Schnittstellen gearbeitet. gearbeitet. In letzter Zeit habe ich versucht, mehr über die Serverprogrammierung zu lernen, nachdem ich mich mit Erlang vertraut gemacht hatte, um Spaß zu haben und mein Wissen zu erweitern. Ich habe mich mit Servern aus einer C++/Java-Perspektive beschäftigt und frage mich nun, wie skalierbare Systeme mit Technologien wie C++ oder Java gebaut werden können.
Ich habe gelesen, dass aufgrund des Kontextwechsels und des begrenzten Speichers ein Thread-Handler pro Client nicht realistisch ist. Normalerweise wird ein Thread-Pool erstellt und eine Mischung aus Worker-Threads und asynchroner E/A verwendet, um Anfragen zu bearbeiten. Ich frage mich vor allem, wie man die Größe des Thread-Pools bestimmt? Muss man einfach messen und das optimale Gleichgewicht finden? Wenn das System skaliert, wird vielleicht mehr als ein Server benötigt, um Anfragen zu bearbeiten. Wie werden die Anfragen über mehrere Server hinweg verwaltet, die einen großen Kundenstamm bedienen?
Ich suche nur nach Hinweisen, wo ich mehr lesen und Antworten auf meine Fragen finden kann. In welchem Bereich der Informatik sollte ich nach weiteren Informationen in diesem Bereich suchen? Gibt es irgendwelche Entwurfsmuster für diesen Bereich der Informatik?