180w数据 用solrcloud 写索引花了8个小时
以前用单点的时候 只要2个小时
看了下CloudSolrClient的源码 update的时候 它会生成一个LBHttpSolrClient 然后最终生成一个HttpSolrClient去连leader
写索引时间长 可以试下直连的方式 不要用CloudSolrClient 直接用HttpSolrClient 直连到leader (基于单shard 如果是多个shard 则要计算hash值 判断数据落在哪个shard上)
leader更新之后 leader会发通知消息去slave slave自己会更新
leader为 http://10.3.3.106:8984/solr/corename_shard1_replica_n2
这样减少去连zk带来的时间消耗(个人认为主要耗时在这里)
当然 还有软提交(softCommit) 应该也是一种解决方案
solrClient.commit(true, true, true);
网友评论