Utilizziamo Apache Solr (3.1.0) per indicizzare molti articoli scritti per più siti. Abbiamo una configurazione master/slave (configurazione di replica nella parte inferiore), dove il server 1 indicizza gli articoli e il server 2 replica l'indice. Lo slave dovrebbe interrogare il master ogni 60 secondi, ma invece possiamo vedere da 10 a 75 chiamate consecutive da /replication
quasi ogni volta.Apache Solr: lo slave si replica più di 10 volte ogni volta che esegue il polling (commit eccessivo?)
Ogni nucleo Solr (${solr.core.name}
nella configurazione slave) rappresenta un sito diverso. Le chiamate /replication
che vedo di più sono legate al sito più grande. Uno dei core ha ricevuto solo 1 chiamata al minuto, e sono stato in grado di riprodurlo lì dopo aver chiamato lo update?commit=true
un paio di volte, quindi questo mi porta a pensare che sia legato alla quantità di commit che il master esegue.
Quindi la mia domanda è: come posso impedire allo slave Solr di replicare l'indice decine di volte e costringerlo a replicare solo una volta al minuto? Ho provato a giocare con il parametro commitReserveDuration
nella configurazione principale, ma non vedo alcuna differenza.
maestro replica config:
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="master">
<str name="replicateAfter">commit</str>
<str name="replicateAfter">startup</str>
</lst>
</requestHandler>
config replica slave:
<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>
Vorrei provare a disabilitare pollInterval (specificare no pollInterval) ed eseguire la replica tramite la chiamata api attivata da un processo cron. Aiuta? https://wiki.apache.org/solr/SolrReplication?action=AttachFile&do=get&target=replication.png –
Grazie per la risposta. Ho provato questo e chiamando '/ replication? Command = fetchindex' una volta fa scattare molte chiamate'/replication' sul master ... Non vedo alcuna differenza tra questo e mantenendo pollInterval nella config. Ad essere onesti, questo potrebbe essere un comportamento perfettamente normale, ma non riesco a trovare alcun documento che lo descriva. –
Questa era solo un'idea per tenere traccia del problema. Scusa, non posso aiutarti ulteriormente. –