Volt Introduction and Docs

メッセージバス

Volt は、ある Volt クラスター (同一のデータベースに接続しているインスタンス) のすべての Volt インスタンス (server/console/runner) 間の pub/sub インターフェースを提供するメッセージバスを持っています。Volt は PeerToPeer のメッセージバスを持っていますが、他のメッセージバスを作成したり、利用することができます。

メッセージバスは、インスタンス間でモデルの更新をプッシュするために Volt が内部的に使用しています。更新は、Volt インスタンスに接続しているすべてのブラウザーに送信されます。これによって Volt は、ライブアップデートのプッシュ機能を維持したまま、スケールアウトすることを容易にしています。

PeerToPeer バス

デフォルトの peer to peer バスはデータベースを利用して、インスタンスが構成するソケットサーバーの IP とポーとのリストを同期します。(※構成の詳細は、生成された config/app.rb のコードを参照してください) サーバーがネットワーク越しに疎通可能な限り、すべては「just work™」するはずです。(※多くのデプロイ環境で、プライベートクラウド内でサーバーは相互に通信できます) もしサーバーの限られたポートしか開かれていない場合は、config/app.rb で利用するポートを指定することができます。

アプリケーションコードでのメッセージバス

メッセージバスはアプリケーションのコードで使用することもできます。メッセージバスは subscribepublish のメソッドを提供します。

TODO: メッセージバスについての記載を追加する

カスタムメッセージバス

lib/volt/message_bus/base_message_bus.rbBaseMessageBus クラスを実装することで、独自のメッセージバスを用意することができます。それを config.message_bus.bus_name = 'name_of_class' として設定します。name_of_class はクラス名をアンダースコア表記にしたものです。独自バスの実装に関する詳細は base_message_bus.rb を参照してください。