2016-06-13 80 views
0

我有3個Ubuntu虛擬機已完全安裝並且與Solr 6.0.1和外部Zookeeper一起運行。 Solr在Cloud模式下運行,並通過Zookeeper跨3個節點進行復制。數據索引正在所有服務器上覆制,個別查詢在所有服務器上運行良好。當我在Solr01上執行查詢時,我從Solr文檔中瞭解到,所有節點都將自動輪詢並且負載平衡是「內置的」。但是,當我檢查Solr02和Solr03的日誌時,看起來這些服務器實際上並未得到使用。我的假設對於負載平衡是否正確,我如何確認它正在工作?使用SOLR 6,Ubuntu上的Zookeeper負載均衡查詢請求

回答

2

由於您要在所有三臺服務器上覆制相同的內容,Solr01沒有理由聯繫任何其他服務器 - 它已經擁有所有需要回答查詢的文檔。

如果您使用的是SolrJ(或另一個支持Zookeeper的客戶端),它將(如果使用正確的客戶端)負載平衡索引的所有副本的讀取。如果您使用的客戶端不支持Zookeeper,但支持多個服務器地址,請提供您感興趣的所有服務器(例如,SolrClient([http://solr01, http://solr02, http://solr03])。如果您的客戶端只支持一個URL,請使用常規的負載均衡器即使您的客戶端支持提供多個URL,我也建議這樣做,因爲它允許您在不觸及代碼的情況下刪除和添加節點)。有大量可用的負載均衡器,如haproxy,nginx,varnish,Apache等。