solrj針對solrcloud提供了CloudSolrClient,用於對叢集環境solr操作,從一個測試例子,一步步深入,看看CloudSolrClient是如何做查詢操作的1、使用CloudSolrClient發起一個查詢請求2、接著呼叫CloudSolrClient的request方法3、CloudSolrClient的request方法中,首先回去獲取請求中的collection名字,如果沒有,獲取預設設定的collcetion,然後呼叫requestWithRetryOnStaleState方法4、requestWithRetryOnStaleState方法中,先去連線zk獲取solrclound註冊在zk上的資訊5、獲取zk上的資訊,經過處理後,封裝到request中,呼叫sendRequest方法6、在sendRequest中,會獲取每個片的每個replicat的url與註冊在zk上的live url做一個交集,得到一個查詢url集合,然後建立一個LBHttpSolrClient,請求solrcloud7、LBHttpSolrClient的request中會在for迴圈中挨個的輪詢上一個步驟中放入的urllist發起http查詢請求在rsp合併結果,並返回
solrj針對solrcloud提供了CloudSolrClient,用於對叢集環境solr操作,從一個測試例子,一步步深入,看看CloudSolrClient是如何做查詢操作的1、使用CloudSolrClient發起一個查詢請求2、接著呼叫CloudSolrClient的request方法3、CloudSolrClient的request方法中,首先回去獲取請求中的collection名字,如果沒有,獲取預設設定的collcetion,然後呼叫requestWithRetryOnStaleState方法4、requestWithRetryOnStaleState方法中,先去連線zk獲取solrclound註冊在zk上的資訊5、獲取zk上的資訊,經過處理後,封裝到request中,呼叫sendRequest方法6、在sendRequest中,會獲取每個片的每個replicat的url與註冊在zk上的live url做一個交集,得到一個查詢url集合,然後建立一個LBHttpSolrClient,請求solrcloud7、LBHttpSolrClient的request中會在for迴圈中挨個的輪詢上一個步驟中放入的urllist發起http查詢請求在rsp合併結果,並返回