Ich habe in eingebetteten Systemen und Systemen Programmierung für Hardware-Schnittstellen bis heute zu arbeiten. Aus Spaß und persönlichem Wissen habe ich kürzlich versucht, mehr über Serverprogrammierung zu lernen, nachdem ich meine Hände mit Erlang nass gemacht habe. Ich gehe zurück und denke über Server aus einer C++/Java-Perspektive, und jetzt frage ich mich, wie skalierbare Systeme mit Technologie wie C++ oder Java gebaut werden können.Server-Design und Implementierung
Ich habe gelesen, dass aufgrund von Kontextwechsel und begrenztem Speicher ein pro-Client-Thread-Handler nicht realistisch ist. Normalerweise wird ein Thread-Pool erstellt und eine Mischung aus Worker-Threads und asynchronem I/O wird verwendet, um Anfragen zu bearbeiten. Ich frage mich zunächst, wie bestimmt man die Thread-Pool-Größe? Muss man einfach das optimale Gleichgewicht messen und finden? Wenn das System skaliert wird, wird möglicherweise mehr als ein Server benötigt, um Anfragen zu bearbeiten. Wie werden Anforderungen auf mehreren Servern verwaltet, die eine große Kundenbasis verarbeiten?
Ich bin nur auf der Suche nach einer Richtung in die ich vielleicht mehr lesen und Antworten auf meine Fragen finden könnte. In welchem Bereich der Informatik würde ich mich für weitere Informationen in diesem Bereich interessieren? Gibt es Design-Muster für diesen Bereich des Computing?
Ich schätze diese Frage, aber vielleicht sind es vier oder fünf Fragen in einem. – ojblass