【问题标题】:What is wrong with embedding solr嵌入 solr 有什么问题
【发布时间】:2013-11-06 07:58:23
【问题描述】:

我在 Web 应用程序中使用 Solr。由于部署会更简单,我想嵌入 Solr。但是,http://wiki.apache.org/solr/EmbeddedSolr 说“嵌入 Solr 不太灵活,更难支持,没有经过很好的测试,应该为特殊情况保留”?

我想更详细地了解权衡。我想知道为什么它不那么灵活?什么情况下推荐使用嵌入模式?

【问题讨论】:

    标签: java solr


    【解决方案1】:

    据我所知,这些警告是正确的

    无法暴露嵌入式服务器

    如果有一天,您想将应用程序的 solr 部分公开给世界其他地方,您将无法做到。这已在 SO 问题 Access embedded Solr server from external application

    中详细说明

    无管理界面

    嵌入式服务器不提供管理界面。这是有道理的,因为它无法从外部访问,请参阅前面的警告。此外,当嵌入式服务器运行时,您无法通过另一个提供管理界面的完整 Solr 安装访问其 solr home 中的内核。这已在 SO 问题 How to access the admin interface of an EmbeddedSolrServer instance?

    中详细说明

    不支持分片

    正如您在 SO 问题中所读到的那样 How to connect embedded solr with each other by sharding 还有一个 open issue 嵌入式服务器不支持分片。

    【讨论】:

      【解决方案2】:

      当您需要非分布式的简单解决方案时,建议使用嵌入式服务器。例如,在编写小型单元和集成测试时,您可能希望拥有一个具有特殊配置的特殊 Solr 实例,例如使用 RamDirectories,而不是将更改写回。

      开发数据库也是如此。我总是使用内存数据库,而不是写回加载预设场景的文件(我也用于验收和集成测试)。这样,您在重新启动应用程序和进行回归测试时具有速度优势。如果您的服务器在一秒或 10 秒内启动,这是不同的,这就是您可以实现的。如果您的测试运行缓慢,那么您在测试驱动开发方面就会变慢。

      另外,如果您需要专用的 Solr 服务器实例或需要云功能,您可以轻松地从使用嵌入式服务器切换到独立服务器。这只是几行代码,你就完成了。

      因此,如果您不知道是否需要专用服务器,只需从嵌入式版本开始,即可享受简化的配置和设置以及轻微的性能提升。一旦您需要一个独立的服务器,只需更改几行代码,其余的保持不变。

      【讨论】:

      • 生产中的小数据集有什么用?可能有几千条记录由老式 SQL 数据库支持,该数据库在每次启动时填充嵌入式 Solr?
      • 如果数据集是不变的,为什么不呢。如果不是,您必须传递事件,如果您的系统是分布式的,或者有其他方法让每个单独的实例赶上现实。这通常是让 solr“集群”为您处理同步的关键。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 2020-12-31
      • 2010-11-19
      • 1970-01-01
      相关资源
      最近更新 更多