ピクスタの開発部で開発合宿を開催したので、
そのネタとして、Solr4.10.4でのレプリケーション(master-slave構成)を今更ながら試してみることにしました。
前回の記事はこちらです。
また参考にした書籍は↓こちらです
レプリケーションの設定(master)
$ cp -R solr-4.10.4/example/ solr-4.10.4/master1 $ cd ~/solr-4.10.4/master1 $ vim solr/collection1/conf/solrconfig.xml
上記ファイルを開いたら、下記のように編集します。
<requestHandler name="/replication" class="solr.ReplicationHandler" > <lst name="master"> <str name="replicateAfter">commit</str> <str name="replicateAfter">optimize</str> <str name="replicateAfter">startup</str> <str name="confFiles">schema.xml,stopwords.txt</str> </lst> </requestHandler>
こちらの設定はcommit, optimize, 起動直後にslaveに対してレプリケーションを実行するという設定です。
続いて、Slave側の修正もしましょう。
レプリケーションの設定(slave)
$ cp -R solr-4.10.4/example/ solr-4.10.4/slave1 $ cd ~/solr-4.10.4/slave1 $ vim solr/collection1/conf/solrconfig.xml
上記ファイルを開いたら、下記のように編集します。
<requestHandler name="/replication" class="solr.ReplicationHandler" > <lst name="slave"> <str name="masterUrl">http://localhost:8983/solr/collection1</str> <str name="pollInterval">00:00:30</str> </lst> </requestHandler>
こちらは、masterURLを指定しており、ポーリング間隔を30秒にしています。
これでレプリケーション(master-slave構成)設定は完了です。
それぞれ起動してみましょう。
$ cd ~/solr-4.10.4/master1 $ java -jar start.jar $ cd ~/solr-4.10.4/slave1 $ java -Djetty.port=8985 -jar start.jar
http://locahost:8983/solr/#/
にアクセスし、
collection1のreplicationタブを確認すると、Disable Replicationというボタンが表示されていることが確認できます。
続いてslaveの確認をしてみましょう。
http://locahost:8985/solr/#/
にアクセスし、
collection1のreplicationタブを確認すると、Replication Nowボタン、Disable Polingボタンが表示されていることが確認できます。
これらのボタンを押すと、ボタンのキャプションの通り、下記の動作ができます。
GUIでサクッとレプリケーションの確認ができるなんて3系のadmin画面を知っている身からすると、
なんだか嬉しいような切ないような気持ちになりますね。
甥っ子がいつの間にか大人になっていた的な。
(個人的には3系の無骨な画面も好きだったりします。)
今回で分散インデクシングとレプリケーション(master-slave構成)を学んだので、
お次は待望のSolrCloudを試してみましょ〜!