2016-02-26 29 views
17

dizinleyebiliyoruz birden fazla site için yazılmış makalelerin bir sürü apache solr (3.1.0) kullandığınızı 10 + kez çoğaltır. Sunucu 1'in makaleleri endekslediği ve sunucu 2'nin dizini çoğalttığı bir ana/bağımlı kurulum (altta çoğaltma yapılandırması) var. Köle efendi her 60 saniyede bir anket gerektiğini, ancak bunun yerine, biz en fazla 75 ardışık /replication aramaların neredeyse her zaman için 10 görebilirsiniz.apache solr: Köle her seferinde anketler (? Aşırı onaylatabilirsiniz)

Her Solr çekirdeği (${solr.core.name} bağımlı yapılandırmada) farklı bir siteyi temsil eder. En çok gördüğüm /replication çağrıları en büyük siteye bağlı. çekirdek biri sadece dakikası 1 çağrı var ve ben bir kaç kez update?commit=true çağırdıktan sonra orada bu çoğaltmak mümkün, o yüzden bu efendi gerçekleştirdiği taahhüt miktarına ilişkin düşünmesini götürüyor.

Benim soru, nasıl kez indeks onlarca çoğaltılmasını Solr köle durdurmak ve sadece bir kez dakikası çoğaltmak için zorlamak yok edilir? Ana yapılandırmada commitReserveDuration parametresiyle oynamayı denedim, ancak gerçekten hiçbir fark görmüyorum.

ana çoğaltma yapılandırma:

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

köle çoğaltma yapılandırma: Eğer yayımlıyoruz örtmek kodundan taahhüt böylece daha sonra çok sık olarak tamamlamak sonra çoğaltma belirtilen config

<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> 
+0

Ben pollInterval devre dışı bırakma (hayır pollInterval belirtin) ve bir cron işi tetiklediği api çağrısıyla çoğaltma yürütmeye çalışacağını söyledi. Yardımcı olur mu? https://wiki.apache.org/solr/SolrReplication?action=AttachFile&do=get&target=replication.png cevap için –

+0

teşekkürler. Bunu denedim ve '/ replication? Komutunu = fetchindex' çağırmak bir kez usta üzerinde çok fazla '/ replication' çağrısını tetikler ... Ben bunun arasında bir fark görmedim ve configInterval'ı yapılandırmada tutuyorum. Dürüst olmak gerekirse, bu tamamen normal davranış olabilir, ancak bunu tanımlayan hiçbir belge bulamıyorum. –

+0

Bu sadece sorunu izlemek için bir fikirdi. Üzgünüm, size daha fazla yardımcı olamam. –

cevap

1

çoğaltma tetikleyecek, bu yüzden yerine yerine optimize etmek için değiştirmek öneririz. Bu probleminizi çözmeli. Here, replicationafter ayarları hakkında daha fazla ayrıntı veren bağlantıdır.

+0

Yorumunuz için teşekkürler. İşlemi optimize etmeyi değiştirdiğimde, slave master ile 5+ dakika arasında senkronize değil gibi görünüyor, bu da çok uzun. Yine de, koddan optimizasyonu çağırmak ve işe yarayıp yaramadığını görmek için bir yol bulmaya çalışacağım. –