2011-12-26 20 views
3

私は、竜巻アプリケーションの1つのインスタンスを多くの人に拡大する方法を模索しています。私は5台のサーバーを持っており、アプリケーションの4つのインスタンスごとに実行したい。私が解決する方法がわからない主な問題は、正しい方法でインスタンス間の通信を行うことです。pythonの竜巻アプリケーションをスケールする適切な方法

  • データを共有するためにmemcachedを使用します。私はこのアプローチが良いとは思わない、多くのトラフィックがmemcachedでサーバに送られるからだ。したがって、将来、トラフィック関連の問題が発生する可能性があります。
  • 各インスタンス間にソケットを開きます。私にとっては、そのようなコミュニケーションを維持することは難しいでしょう。
  • ZeroMQのようなツールを使用してください。私はこの技術に精通していません。それはサーバー間でアプリケーションを拡張する方法になりますか?

答えて

2

私は実際に似たようなものを見ています。私が思いついたのはこれです。 Python Multiprocessingモジュール(http://docs.python.org/library/multiprocessing.html)を使用して、個々のサーバでそのようにプロセスをリンクします。次に、セッション固有のデータ用にmemcachedサーバーを使用します。 (セッションID、IP情報、セッションを特定のユーザーおよび使用しているアクティビティのスレッドに結びつけるために使用される情報)残りはDBインスタンスから駆動されるデータです。

0

あなたが行うことができるのは、memcachedインスタンスとトルネードインスタンスを実行する各サーバーです。 repcachedを使ってmemcachedインスタンスを "Master replicate"にして、それぞれのインスタンスがマシンからmemcachedデータにアクセスできるようにします。竜巻とmemcachedインスタンスのための4つのサーバーと、他の負荷バランスをとるためのhaproxyを実行する5つ目のサーバー。

www.haproxy.org/

repcached.lab.klab.org/

関連する問題