production.log

株式会社リブセンスでエンジニアをやっている星直史のブログです。

Solr 4.10.4でレプリケーション(master-slave構成)を試してみました。

ピクスタの開発部で開発合宿を開催したので、
そのネタとして、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というボタンが表示されていることが確認できます。
f:id:watasihasitujidesu:20160124001449p:plain

続いてslaveの確認をしてみましょう。
http://locahost:8985/solr/#/にアクセスし、
collection1のreplicationタブを確認すると、Replication Nowボタン、Disable Polingボタンが表示されていることが確認できます。
f:id:watasihasitujidesu:20160124001453p:plain

これらのボタンを押すと、ボタンのキャプションの通り、下記の動作ができます。

GUIでサクッとレプリケーションの確認ができるなんて3系のadmin画面を知っている身からすると、
なんだか嬉しいような切ないような気持ちになりますね。
甥っ子がいつの間にか大人になっていた的な。
(個人的には3系の無骨な画面も好きだったりします。)

今回で分散インデクシングレプリケーション(master-slave構成)を学んだので、
お次は待望のSolrCloudを試してみましょ〜!