読者です 読者をやめる 読者になる 読者になる

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を試してみましょ〜!