• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

Merbはコマンドラインから-c 3のように指定する事で、
クラスターとして起動出来ますが、これを設定ファイルの
中から行う場合には、以下のように書けば良いようです。

config/init.rb
ruby>>
Merb::Config.use do |c|
...
 c[:port] = 4001
 c[:cluster] = 2
end
<<--

あとは、普通にmerbコマンドで起動するだけです。
config/environments/production.rbなどで設定しても良いですね。

posted by genki genki on Tue 17 Feb 2009 at 01:02 with 0 comments
This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/178

HyperEstraier
は、全文検索エンジンです。Ruby on Railsから利用する場合は、acts_as_searchableを利用すると、非常に簡単にWebサービスに検索機能を追加することができます。

今回は、HyperEstraierのP2P連携機能を使ってクラスタリングを行う手順を紹介します。

まず、クラスタリングを行う全てのPCに、
通常の手順でHyperEstraierをインストール
します。パッケージマネージャを使う事もできますが、今回はソースからインストールする事にします。

インストールが済んだら、HyperEstraierを初期化して起動します。以下では、/usr/local/hyperestraier以下に環境を構築しています。

shell-unix-generic>>

estmaster init /usr/local/hyperestraier

estmaster start -bg /usr/local/hyperestraier

<<--

起動したら、ポート1978にアクセスし、動いていることを確認します。
続いてWebインターフェイスからノード間のリンクを作成します(もちろん、あらかじめノードを作成しておく必要があります。)

リンクの作成は、ノード編集画面から行います。

例)
http://search-1.com:1978/master_ui?action=10&name=nodename

ノード編集画面の一番下のlist of linksに以下のように、「{{!}}」で区切って別なサーバのノードを登録します。

http://search-2.com:1978/node/nodename{{!}}label{{!}}1000

上記は、search-2.com上のnodenameというノードに対して、labelというラベルでリンクを作成しています。1000というのは信頼度で、検索結果の順位に影響します。1台目から2台目へのlinkの設定が済んだら、2台目から1台目に逆方向にリンクを張ります。

以上でクラスタリングは完了です。
実際に検索を行うときは、メタ検索のdepthを1以上に指定する必要があります。

This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/178
posted by genki genki on Thu 22 Nov 2007 at 04:48 with 0 comments