Łączenie akceptantów i równoważenie obciążenia w Erlang?
Zhttp://www.erlang.org/doc/man/gen_tcp.html#accept-1:
Warto zauważyć, że wywołanie accept nie musi być wydane przez proces właściciela gniazda. Używając wersji 5.5.3 i wyższej emulatora, można wywołać wiele jednoczesnych wywołań akceptacji z różnych procesów, co pozwala na pulę procesów akceptora obsługujących połączenia przychodzące.
(Q1) Czy to znaczy, że możemy miećJednorożecrównoważenie obciążenia w Erlang?
(Q2) Jeśli tak, czy istnieją jakieś istniejące serwery lub biblioteki korzystające z tej funkcji?
(Q3) Jednorożec działa przy założeniu, że przetwarzanie żądania jestszybki. Czy przy takim samym założeniu można uzyskać lepszą wydajność, łącząc akceptantów i pracowników w Erlang?
Dla tych, którzy nie są zaznajomieni z Unicornem, jest to tradycyjny preforkowy serwer WWW. Równoważenie obciążenia między procesami roboczymi jest wykonywane przez jądro systemu operacyjnego. Wszyscy pracownicy mają wspólny zestaw gniazd nasłuchiwania i nie blokują akceptacji () na nich. Jądro zdecyduje, który proces roboczy ma dać gniazdo, a pracownicy będą spać, jeśli nie ma nic do zaakceptowania ().Dla pojedynczego gniazda nasłuchującego uważam, że to samo, gdy procesy robocze blokują accept (), a jądro systemu operacyjnego decyduje o wyniku „wyścigu”.