2011-12-26 70 views
3

我正在尋找某種方式來將龍捲風應用程序的一個實例縮放到很多。我有5臺服務器,並希望在每個應用程序的4個實例中運行。我不知道如何解決的主要問題是以正確的方式在實例之間進行通信。我看到下面的方法:縮放python龍捲風應用程序的正確方法

  • 使用memcached共享數據。我不認爲這種方法是好的,因爲很多流量都會通過memcached進入服務器。因此,未來可能會出現與交通有關的問題。
  • 在每個實例之間打開套接字。對我而言,維持這種溝通方式太難了。
  • 使用工具,如ZeroMQ。我不熟悉這項技術。它可以成爲服務器之間擴展應用程序的方式嗎?

回答

2

我實際上正在尋找類似的東西,我想到了這個想法。使用Python多處理模塊(http://docs.python.org/library/multiprocessing.html)以這種方式將各個進程鏈接到各個服務器上。然後爲會話特定數據使用memcached服務器。 (SessionIDs,IP信息,用於將會話與特定用戶以及他們正在使用的活動的線程綁定在一起的信息)。其餘部分由數據庫實例驅動。

0

你可以做的是爲每個服務器運行一個memcached實例和一個龍捲風實例。使用repcached使memcached實例彼此「主複製」,以便每個龍捲風實例都可以從其機器訪問memcached數據。四個服務器用於龍捲風和memcached實例,第五個用於運行haproxy來平衡其他用戶。

www.haproxy.org/

repcached.lab.klab.org/