我支持 Rails 项目,其中包含 Rails 应用程序和 Solr 的附加实例。
我的环境:rails 3.2.1、ruby 2.1.2、sunspot 2.1.0、Solr 4.1.6。
问题:
云提供商不稳定。我不能使用其他云提供商 - 这是客户的需求。通常,搜索服务器会进行维护,而 Web 应用程序会停止在生产环境中运行。因此,我考虑如何制作两台相同的搜索服务器而不是一台,以使系统更加稳定:如果一台服务器宕机,另一台服务器将继续工作。
摆脱困境的方法:
- 或将两个搜索服务器配置为 Solr Replication
- 或将两个搜索服务器配置为 SolrCloud
问题:
- 要做什么以及为什么?
- SolrCloud 是更好的解决方案吗?
- 这些变体的优点和缺点是什么?
- 什么情况下使用 SolrCloud 更好?
- 在哪些情况下最好协调 Solr 复制?
最佳答案
您应该能够在论坛中找到 Solr Master Slave Heirarchy 与 SolrCloud 的可能比较,但这些是我对它们的理解/经验,因此请谨慎使用。
- 要做什么以及为什么? 这完全取决于您的业务需求。我想说,如果您的应用程序只是从 SOLR 读取数据,并且需要从 SOLR 读取数据的高可用性,那么简单的一主多从层次结构就足够了。 但如果您也在寻求写入 SOLR 的高可用性,那么 SolrCloud 是一个正确的选择
- SolrCloud 是更好的解决方案吗? 没有什么比这更好的了,维护 SolrCloud 需要良好的基础设施,并且必须注意 ZooKeepers 的可用性、节点健康状况、高性能磁盘以获得更好的复制速度等。 但是,除此之外,我们不需要担心节点之间的数据一致性,因为这将由 SolrCloud 负责
- 这些变体的过程和缺点是什么? 如上所述。
- 什么情况下使用 SolrCloud 更好? 当您需要 Solr 写入和读取的高可用性时,我们必须选择 SolrCloud 另外,如果您无法负担更大的机器来拥有一个节点,那么您可以将索引拆分为多个分片并将其保留在较小的配置机器下。
- 什么情况下更适合选择Solr Replication? 当您的应用程序不实时写入 SOLR 时,复制就足够了,无需使用 SolrCloud 变得复杂。此外,设置 Master Slave 比 SolrCloud 相对容易
关于solr - Solr 复制和 Solr 云有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31766288/