2013-07-31 12 views
5

W documentation widzę następujące:kolby i skalowanie i współbieżności

Jest tylko jeden czynnik ograniczający dotyczące skalowania w Kolby które są kontekst lokalne proxy. Zależą od kontekstu, który w Flask jest zdefiniowany jako będący albo wątkiem, procesem, albo zielenią. Jeśli twój serwer wykorzystuje jakąś współbieżność, która nie jest oparta na wątkach lub zielonych, , Flask nie będzie już w stanie obsługiwać tych globalnych serwerów proxy . Jednak większość serwerów używa albo wątków, greenletów, albo oddzielnych procesów, aby uzyskać współbieżność, które wszystkie są dobrze obsługiwane przez bazową bibliotekę Werkzeug.

Moje pytanie: Jakie inne współbieżne mechanizmy istnieją oprócz tych 3 metod?

Odpowiedz

2

Jednym z całkiem interesujących mechanizmów współbieżności jest model asynchroniczny. Masz jeden proces z pojedynczym wątkiem, który uruchamia cały program, a wszystkie operacje wejścia/wyjścia lub inne długie są asynchroniczne i oparte na wywołaniach zwrotnych. Ta metoda bardzo dobrze skaluje się dla usług związanych z I/O, serwery w tej kategorii z łatwością radzą sobie z problemem o nazwie C10K.

Zobacz przykłady na przykład Tornado lub node.js.

+0

Jest to zasadniczo objęte zielenią. – Jahaja

+0

@Jahaja: Nie. Zielone serwery internetowe to jedno, a asynchroniczne (sterowane zdarzeniami) serwery internetowe, takie jak Tornado, to kolejna rzecz. Obaj osiągają podobny cel wyższej współbieżności, ale dostają się tam za pomocą różnych metod. W szczególności Flask może działać na serwerze internetowym opartym na środowisku, ale nie będzie łatwo przystosować się do asynchronicznego serwera. – Miguel

+0

Chodzi mi o to, że oba rozwiązania wykorzystują to, co opisujesz w niższych warstwach. Gevent za pomocą libevent/libev i node.js za pomocą libuv. (pamiętajcie o tym, że gevent 2.0, jeśli został zwolniony, może być oparty na libuv.) – Jahaja

Powiązane problemy