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集群,某人本地还是单点的,导致数据不同步了。