Подтвердить что ты не робот

Apache Solr: Slave реплицирует 10 раз каждый раз при опросе (чрезмерные коммиты?)

Мы используем Apache Solr (3.1.0) для индексации множества статей, написанных для нескольких сайтов. У нас есть настройка ведущий/ведомый (репликация конфигурации внизу), где сервер 1 индексирует статьи, а сервер 2 реплицирует индекс. Ведомый должен опросить мастер каждые 60 секунд, но вместо этого мы можем видеть от 10 до 75 последовательных вызовов /replication почти каждый раз.

Каждое ядро ​​Solr (${solr.core.name} в подчиненной конфигурации)  представляет собой другой сайт. /replication звонки, которые я вижу, больше всего привязаны к самому большому сайту. Один из ядер получил только один вызов в минуту, и я смог воспроизвести его там, несколько раз позвонив update?commit=true, так что это заставляет меня думать, что это связано с количеством коммитов, выполняемых мастером.

Итак, мой вопрос в том, как мне заставить slr-сервера Solr тиражировать индекс десятки раз и заставить его реплицировать только один раз в минуту? Я пробовал играть с параметром commitReserveDuration в главной конфигурации, но я не вижу никакой разницы.

главная репликация конфигурации:

 <requestHandler name="/replication" class="solr.ReplicationHandler" >
   <lst name="master">
     <str name="replicateAfter">commit</str>
     <str name="replicateAfter">startup</str>
   </lst>
 </requestHandler>

Конфигурация подчиненной репликации:

 <requestHandler name="/replication" class="solr.ReplicationHandler" >
   <lst name="slave">
     <str name="masterUrl">http://${solr.master.server}/search/${solr.core.name}/replication</str>
     <str name="pollInterval">00:00:60</str>
   </lst>
 </requestHandler>
4b9b3361

Ответ 1

в конфигурации, которую вы указали репликацию после коммита, так что если вы часто совершаете фиксацию из кода, то она инициирует репликацию, поэтому я предлагаю изменить для оптимизации вместо фиксации. Это должно решить вашу проблему. Here - ссылка, которая дает более подробную информацию о настройках replicationafter.