2012-01-10 14 views
5

Istnieje prawdopodobnie ładny dokument, który mi pomoże. Proszę wskazać to.jak wdrożyć hardened serwer Thrift dla Pythona?

Jeśli napiszę serwer Thrift za pomocą Pythona, jaki jest najlepszy sposób wdrożenia go w środowisku produkcyjnym? Wszystko, co mogę znaleźć, to przykłady użycia serwerów opartych na Pythonie, które pochodzą z dystrybucji. Jak mogę wykorzystać Apache jako platformę serwerową? Czy obsługuje trwałe połączenia?

Z góry dziękuję.

Odpowiedz

1

Przeczytałem, że można wdrożyć go za pomocą nginx za pomocą modułu upstream, aby wskazać serwer oszczędnościowy. Powinieneś mieć co najmniej jeden rdzeń procesora na jeden serwer oszczędnościowy i jeden pozostały dla systemu (np. Jeśli masz czterordzeniowy system operacyjny, powinieneś uruchomić tylko 3 serwery oszczędnościowe, pozostawiając po sobie jedną pozostałą część dla systemu).

+0

Gdzie to przeczytałeś? –

+0

Nie pamiętam, po prostu dodałem do zakładek tę stronę: http://wiki.nginx.org/HttpUpstreamModule. Myślę, że zakładamy, że i tak korzystasz z serwera z jednym wątkiem. Jeśli używasz rozwidlanego/nagwintowanego serwera, możesz obsłużyć więcej klientów. –

+0

Chciałbym użyć czegoś takiego jak Apache, ponieważ ma on postanowienia dotyczące restartowania wątków i procesów w przypadku, gdyby coś poszło nie tak. Myślę, że moduł upstream nie pomoże w tym. Inne pomysły? –

1

Zakładam, że używasz Python THttpServer? Kilka uwag:

1) Istnieje komentarz w tym kodzie, który czyta

„”” Ta klasa nie jest bardzo wydajnych, ale jest przydatny (na przykład) na działając jako mock wersji punktu końcowego oszczędzania PHP opartego na Apache: "" "

Nie polecam używania go w produkcji, jeśli zależy Ci na wydajności. Jeśli przeczytasz ten kod nieco, okaże się, że jest dość łatwo ponownie go zaimplementować przy użyciu innego serwera HTTP, który wybierzesz. W ekosystemie Pythona jest wiele dobrych opcji.

2) Ponadto po przeczytaniu kodu zobaczysz, że serwery HTTP Thrift to zwykłe stare serwery HTTP. Przyjmują cały ruch na pojedynczej ścieżce (domyślnie "/") i kierują wiadomość do odpowiedniej metody, odczytując informacje o routingu zakodowane w samym komunikacie (za pomocą konstrukcji "Thrift" processor "). Powinieneś być w stanie skonfigurować Apache/nginx/cokolwiek w normalny sposób i po prostu przekazać cały ruch do "/" na hoście i porcie, na którym działasz.

Powiązane problemy