haproxy はL7ロードバランサのソフトウェアです。
これによって Solr への検索要求をタダで簡単に冗長化・負荷分散することができるようになります。
haproxy インストール
$ wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz $ cd haproxy-1.4.8 $ make TARGET=linux26 <- OSのタイプを指定。READMEを参照 $ su - # make install <- デフォルトは/usr/local。変更する場合はPREFIX=/hoge/localなど指定 # cp examples/haproxy.init /etc/init.d/haproxy # chmod 755 /etc/init.d/haproxy # chkconfig --add haproxy # chkconfig haproxy on # chkconfig --list haproxy <- 設定確認 haproxy 0:off 1:off 2:off 3:off 4:off 5:off 6:off # vi /etc/init.d/haproxy <- /usr/sbin をすべて /usr/local/sbin に変更 # useradd -s /sbin/nologin haproxy <- 実行ユーザ追加
設定ファイル haproxy.cfg の作成
以下では 192.168.11.42:8080 で受けたリクエストを
192.168.11.41:18080、192.168.11.42:18080の2つの Solr に分配しています。
# mkdir /etc/haproxy # vi /etc/haproxy/haproxy.cfg <- 設定ファイル haproxy.cfg の記述 global log 127.0.0.1 local0 maxconn 10000 daemon nbproc 1 user haproxy group haproxy defaults mode http option httplog log global clitimeout 60000 srvtimeout 30000 contimeout 4000 retries 3 #redispatch listen local-solr 127.0.0.1:8080 balance roundrobin option forwardfor server km-solr1 192.168.11.41:18080 server km-solr2 192.168.11.42:18080 listen solr 192.168.11.42:8080 balance roundrobin option forwardfor server km-solr1 192.168.11.41:18080 server km-solr2 192.168.11.42:18080