Solr資料不同步

小雷FansUnion發表於2016-04-11
Solr配置了叢集,本地有253和254,2個獨立的Solr服務。
  同一個頁面的圖片,重新整理2次,圖片地址不一樣,最後查明,後臺資料來源Solr1和Solr2的資料不一致。
  
  第1步推測:本地快取,刪除瀏覽器快取,用不同的瀏覽器,問題仍然存在,排除。
  
  第2步推測:程式碼查詢有問題
  根據id查詢,出來的Shop的img不一致。
  但是,查詢所有findAll,資料是同一個。(這個問題沒有找到原因)
  
Iterable<SolrShop> shopList = shopRepository.findAll();
//solr讀取當前店鋪
SolrShop shop = shopRepository.findOne(id);

程式碼確實是根據id查詢的。

  第3步推測:Solr中的資料,有重複的,有2個id一致,但是img不一致的資料。
  從shopList找到8個shop,但是id都是唯一的。
  
  第4步推測:最底層的資料來源Solr有多個,果然,最近使用了Solr叢集。
把本地的Solr配置solrServerUrl=192.168.1.254:2181,192.168.1.253:2181
改為:solrServerUrl=192.168.1.254:2181
但是,在使用時,仍然不一致。


    現在需要解決的問題是,為什麼253仍然能正常訪問?
最後原因:測試環境的Solr和本地開發,用的是同一套Solr叢集。本地配置改了,但是Solr仍然有2個。
開啟Log4j的配置,日誌級別改為debug。

   http://192.168.1.254:8983/solr/#/shop/query
   http://192.168.1.253:8983/solr/#/shop/query   
    分別查詢,發現同1個id對應的img不同,問題找到。

問題產生的原因:
第1種可能:第1次增加shop,沒有同步到Solr,第2次同步了。不符合此時的情況,因為都有資料了。
第2種可能:更新shop時,只更新了1個Solr,另外1臺更新失敗。
  
    第2天找到了原因:伺服器是Solr叢集,某人本地還是單點的,導致資料不同步了。

相關文章