我在Web服务器(IIS 7)上托管了一个asp.net Web应用程序。它使用Lucene进行搜索功能。 Lucene搜索请求由位于2个应用程序服务器(IIS 7)上的.Net WCF服务提供.2个应用程序服务器使用“netscaler”进行负载平衡。
这两台服务器都托管一个.net Windows服务,每天晚上更新各个服务器上的搜索索引。
我需要在这两台服务器上同步搜索索引,这样在任何时候服务器都有最新的索引。 考虑到2个应用程序服务器中的任何一个都可以根据其可用性提供搜索请求这一事实,我在考虑可能是最好的架构/设计策略。
请输入任何内容?
感谢阅读!
答案 0 :(得分:1)
基本上,您需要两个相同Lucene索引的相同副本 - 每个IIS服务器一个。 我认为最简单的方法是在一台机器上构建更新的索引,对其进行优化,然后将其复制到另一台机器上。在Linux上我会使用rsync,但我不知道Windows等价物。见Jeff Atwood's ideas for Windows rsync alternatives。 或者,您可以向两个Lucene索引发出相同的索引更新命令,并验证它们是否已正确处理。这在技术上更难,只有在您有更频繁的更新时才有用。有关分布式Lucene索引的更广泛讨论,请参阅Scaling Lucene and Solr。