太阳能应该包含在Web应用程序中,还是单独的

时间:2015-03-26 16:30:05

标签: java tomcat solr

我想使用solr为我的Web应用程序添加搜索功能。 使用SOLR发行版提供的WAR部署solr非常简单直接,但我想知道这样做是否有意义?

solr应该作为单独的WAR部署,还是集成在Web应用程序中?

为了夏天,我几乎没有问题:

  • Shold SOLR可作为单独的WAR部署或集成到应用程序中。
  • 如果应该将其集成到应用程序中,我该如何使用最新的SOLR版本?我为此找到的所有资源都是指旧版本,并依赖于减少的课程。
  • 如果它应该单独部署,我该如何处理我的应用程序测试?由于SOLR必须单独部署,否则会使测试变得非常笨拙。

2 个答案:

答案 0 :(得分:0)

我会单独部署Solr:

  • 您可以(现在或以后)将Solr从您的网络应用程序中物理分离,即将Solr和您的网络应用程序放在不同的计算机上以分离资源利用率(CPU,内存,......)
  • 您可以水平(现在或以后)缩放Solr
  • Solr和您的webapp在不同的JVM中运行,因此您将内存管理和垃圾收集分开
  • 您可以从其他应用程序访问Solr

答案 1 :(得分:0)

您不应尝试将Solr部署为WAR。

来自文档......

https://cwiki.apache.org/confluence/display/solr/Major+Changes+from+Solr+4+to+Solr+5

  

从Solr 5.0开始,Solr不再作为适合在任何Servlet容器中部署的“战争”(Web应用程序存档)进行分发。 Solr现在作为独立的Java服务器应用程序分发,包括用于Unix和MS-Windows平台的启动和停止脚本......

     

...

     

在内部,Solr仍然通过Servlet API实现,并由Jetty提供支持 - 但这只是一个实现细节。不支持将其作为“webapp”部署到其他Servlet容器(或Jetty的其他实例),并且可能在将来5.x版本的Solr中无法在Solr内部进行其他更改以利用自定义网络堆栈功能时。