构建应用程序。现在我们只有一台Solr服务器。但我们想要设计的应用程序,以便它可以支持多Solr分片在未来,如果我们增长超过了索引需求。
在未来开发支持多个分片的应用程序时,需要牢记哪些关键事项?
我们将solr URL /solr/存储在DB中。用于对solr执行查询。在数据库中有一个用于更新的URL和一个用于搜索的URL
如果我们将来将分片添加到solr环境中,那么使用分片的过程会像更新数据库中的URL一样简单吗?或者还有其他需要更新的东西。我们使用的是SolrJ
例如,将数据库中的SolrSearchBaseURL更改为:
https://solr2/solr/select?shards=solr1/solr,solr2/solr&indent=true&q={search_query}并将数据库中的SolrUpdateBaseURL更新为
https://solr2/solr/发布于 2013-07-07 17:31:30
基本上,您描述的内容已经在SolrCloud中实现了。在那里,ZooKeeper维护您的搜索集群的状态(分片在什么集合中,分片副本,主节点和从节点等)。它可以使用散列来处理索引端和查询端的负载。
原则上,您可以使用您开发的系统(至少在集群增长的初期)。但是考虑一下复制,添加负载均衡器,外部缓存服务器(比如varnish):从长远来看,你最终会实现像SolrCloud这样的smth。
话虽如此,使用基于散列的索引和搜索还是有一些需要注意的。如果你想在这一点上实现数据的逻辑分区(比方说,按日期),那么除了编写一个定制的代码之外,没有别的办法。不过,围绕这一点还有一些工作要做。
https://stackoverflow.com/questions/17179669
复制相似问题