サービスの開始

Gearmanの準備

gearmandを起動しておきます。概要で説明した通り、二つのタイプのgearmandを準備しておかなければなりません。

Background Dispatcher

フロントエンドノードから受け取ったイベントを、デリバリーサービスに配送するために利用されるのが、このタイプのキューです。

Inbox

フロントエンドノード一台に対して、一つのgearmandが割り当てられます。

フロントエンドノードと一蓮托生なので、同じマシンで起動しておくのがよいでしょう。

各サーバーで次のように、gearmandを起動しておきます。ポート番号は自由に決めて下さい。

gearmand --port 7001

デリバリーサービスの準備

事前に起動してあるBackground Dispatcherや、各フロントエンドノードのためのInboxキューのアドレスなどをコンフィグで指定しておきます。詳しくはクラスターコンフィギュレーション [ デリバリーサービス ]を参照して下さい。

起動と同時にBackground Dispatcherにつなぎにいくので、デリバリーサービスを起動するのは、Background Dispatcherが起動した後でなければなりません。

./bin/ocean-cluster-start

フロントエンドノードの準備

最後に、フロントエンドノードを起動します。フロントエンドノードを起動するときは、Background Dispatcherデリバリーサービスや、このノードに対応するInboxは、既に起動していなければなりません。

次の三つを除けば、開発ガイド - サービスの開始で説明した手順と同じです。

  • プロジェクトテンプレート生成時にocean-cluster-frontendコマンドを利用
  • コンフィグの設定
  • ルーティングの設定
./bin/ocean-start

注意

以上のように、手順としては次のようになります。

  1. Background Dispatcherとなるgearmandの起動
  2. デリバリーサービスの起動
  3. 各Inboxとなるgearmandとフロントエンドノードのセットの起動

ただし、3のコンフィグをあらかじめ設定しておかなければ、2のデリバリーサービスの設定が完了出来ません。 デリバリーサービスのコンフィグでは、必要なフロントエンドノードのノードIDと、それに対応するInboxのサーバーアドレスなどが必要になるためです。複数のフロントエンドノードでノードIDなど重複しないように気をつけて下さい。

現在は、Background DispatcherInboxのアドレスを、コンフィグファイルで静的に設定しなければいけないようになっています。そのため、あらかじめ各キューのアドレスを決めておかなければ、デリバリーサービスを起動できませんし、フロントエンドノードを追加するたびに再起動が必要になります。将来はノードマネージャサーバーを追加し、ノードIDなどはDHCPのように自動設定できるようにするかもしれません。