Acceptor Pooling und Load Balancing in Erlang?

Vonhttp://www.erlang.org/doc/man/gen_tcp.html#accept-1:

Es ist anzumerken, dass der Annehmen-Aufruf nicht vom Socket-Eigentümer-Prozess ausgegeben werden muss. Ab Version 5.5.3 des Emulators können mehrere gleichzeitige Akzeptanzaufrufe von verschiedenen Prozessen ausgegeben werden. Dies ermöglicht einen Pool von Akzeptorprozessen, die eingehende Verbindungen verarbeiten.

(Q1) Bedeutet das, dass wir haben können?EinhornLastenausgleich in Erlang?

(Q2) Wenn ja, gibt es Server oder Bibliotheken, die diese Funktion nutzen?

(Q3) Unicorn geht davon aus, dass die Anforderungsverarbeitung erfolgtschnell. Ist es unter der gleichen Annahme möglich, durch die Kombination von Akzeptoren und Arbeitern in Erlang eine bessere Leistung zu erzielen?

Für diejenigen, die mit Unicorn nicht vertraut sind, ist es ein traditioneller UNIX-Prefork-Webserver. Der Lastausgleich zwischen Arbeitsprozessen wird vom Betriebssystemkern durchgeführt. Alle Worker teilen sich einen gemeinsamen Satz von Listener-Sockets und akzeptieren () diese nicht blockierend. Der Kernel entscheidet, welchem ​​Worker-Prozess ein Socket zugewiesen wird, und die Worker schlafen, wenn nichts zu akzeptieren ist ().Für einen einzelnen Listener-Socket ist es meines Erachtens dasselbe, wenn die Worker-Prozesse accept () blockieren und der Betriebssystemkern über das Ergebnis des "Rennens" entscheidet.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage