2

我有一个托管在 Web 服务器(IIS 7)上的 asp.net Web 应用程序。它使用 Lucene 进行搜索功能。Lucene 搜索请求由位于 2 个应用程序服务器 (IIS 7) 上的 .Net WCF 服务提供服务。这两个应用程序服务器使用“netscaler”进行负载平衡。

这两个服务器都托管一个 .net windows 服务,该服务每天晚上更新各自服务器上的搜索索引。

我需要在这两个服务器上同步搜索索引,以便在任何时候这两个服务器都有最新的索引。考虑到两个应用程序服务器中的任何一个都可以根据其可用性来服务搜索请求,我在想什么可能是最好的架构/设计策略。

请问有什么输入吗?

谢谢阅读!

4

1 回答 1

1

基本上,您需要相同 Lucene 索引的两个相同副本 - 每个 IIS 服务器一个。我相信最简单的方法是在一台机器上建立一个更新的索引,对其进行优化,然后将其复制到另一台机器上。在 Linux 上我会使用rsync,但我不知道 Windows 的等价物。请参阅Jeff Atwood 关于 Windows rsync 替代方案的想法。或者,您可以向两个 Lucene 索引发出相同的索引更新命令并验证它们是否被正确处理。这在技术上更难,并且仅在您有更频繁的更新时才有用。有关分布式 Lucene 索引的更广泛讨论,请参阅Scaling Lucene 和 Solr

于 2009-06-18T06:15:34.493 回答