2


0

Railsアプリの複数のインスタンスを実行するにはどうすればよいですか?

負荷分散などのためにね 私はVPSを所有しており、複数のインスタンスをデプロイして実行し、データベースセッションストアやmemcachedなどとデータを共有できることを理解しています。 私が見つけることができなかったのは、これがどのように行われるかに関する情報ですか?

単一のVPSおよび複数のVPS上の複数のインスタンス(2つまたは3つ)に興味があります。

TIA,

NJ

3 Answer


5


使用しているアーキテクチャに依存します。 mongrelを使用している場合は、mongrel_clusterを確認してください。 fastcgiまたはパッセンジャーを使用している場合、これは既に行われています。 もう1つの方法は、Herokuを調べて、スライダーバーを変更してインスタンスを増やすことです。 45kのプロジェクトがHerokuでホストされるようになったので、もしあなたがそれを真剣に考えているのなら、ぜひチェックしてみてください。


2


これに関するすばらしい本は、http://bit.ly/deploy_rails [Railsアプリケーションのデプロイ]です。 少し古くなっていますが、レールの管理側の完全な範囲と基盤を提供します。 雑種クラスターを使用して、目的を達成します。

チャックが前述したように、乗客は素晴らしい選択肢であり、Mongrelよりも人気が出てきていると思います。 しかし、この本はあなたに仕事をするための良い基盤を提供します。 電子書籍はわずか22ドルですが、私は自分で紙版を購入しました。


0


クラウドコンピューティングは興味深いものです。 Amazon AWSでは、ディスクイメージの複数のインスタンスを起動して、ワーカーのプールを作成できます。 API呼び出しを使用してマシンを起動およびシャットダウンすることができ、使用した場合にのみ課金されます。

これらのマシンを連携させることはより困難です。 分散ルビープロジェクトがありますが、重要な機能が欠けています。 Quartzは、分散コンピューティングに使用した素晴らしいプロジェクトです。 これは非常に強力なライブラリであり、単一システムまたは大規模クラスターでのタスクの調整を簡素化します。 2つの違いは、1つのhttp://www.quartz-scheduler.org/docs/configuration/ConfigJDBCJobStoreClustering.html [構成ファイル]になります。 ただし、Javaで記述されています。 Javaはrubyよりも優れたメモリマネージャを備えているため、プロジェクトに適しています。 ルビースクリプトを長い間実行したことがありますか? そのメモリ使用量は、数日後に制御不能になる傾向があります。

要するに、Rubyコードを実行するQuartzを使用して、Javaで簡単なジョブを記述します。