Od http://www.erlang.org/doc/man/gen_tcp.html#accept-1:Akceptowanie puli i równoważenie obciążenia w Erlang?
Warto zauważyć, że akceptuje połączenia nie muszą być wydawane z procesu właściciel gniazdo. Korzystając z wersji 5.5.3 i wyższej emulatora , można wygenerować wiele równoczesnych wywołań akceptowanych z różnych procesów, co pozwala puli procesów akceptorowych obsługi połączeń przychodzących.
(Q1) Czy to znaczy, że możemy mieć Unicorn -Style równoważenie obciążenia w Erlang?
(Q2) Jeśli tak, czy istnieją jakieś serwery lub biblioteki korzystające z tej funkcji?
(Q3) Unicorn działa przy założeniu, że żądania przetwarzania szybko. Czy przy takim samym założeniu możliwe jest uzyskanie lepszych wyników dzięki połączeniu akceptantów i pracowników w Erlang?
Dla tych, którzy nie znają Unicorn, jest to tradycyjny serwer internetowy z prefekturą UNIX. Równoważenie obciążenia między procesami roboczymi odbywa się w jądrze systemu operacyjnego. Wszyscy pracownicy dzielą wspólny zestaw gniazd nasłuchiwania i nie akceptują ich akceptacji(). Jądro zdecyduje, który proces roboczy daje gniazdo, a pracownicy będą spać, jeśli nie ma nic do zaakceptowania(). Dla pojedynczego gniazda nasłuchującego, uważam, że jest tak samo, gdy procesy robocze blokują accept(), a jądro systemu operacyjnego decyduje o wyniku "wyścigu".
Można przypuszczać, że podejście do rancza się sprawdza, a także podejście roju w praktyce. Przykład: kowboj używa ranczo i kowboja jest niezwykle szybki. –
@IGIVECRAPANSWERS Zgadzam się. Przy okazji, czy są jakieś aktualne testy porównawcze dotyczące kowboja itp.? –
Nie wiem. Domyślam się, że musisz zmierzyć się ze swoim obciążeniem pracą. Jeśli chodzi o obciążenia, które mam, problem jest gdzie indziej w łańcuchu na długo przed kowbojem nawet sprawia, że jego wejście jako nawet wąskie gardło. –