我们在开发模式下已经使用sunspot的Solr gem有一段时间了。现在需要将应用程序迁移到生产环境。
在生产环境中使用捆绑的sunspot gem设置solr是否有任何缺点?
我通常喜欢tomcat + solr的想法,但是它的设置更加复杂。
Sunspot捆绑的gem很容易。只要我们有1个Rails项目分为3个阶段(staging、production、QA)、2个应用服务器和一个数据库/solr服务器,我们就必须::
- 将rails项目推送到数据库服务器
- 在db服务器上使用bundle exec rake sunspot:solr:start以生产环境启动solr(我们只是为每个solr实例使用不同的端口)
- 使用rake sunspot:solr:reindex重新索引
- 修改sunspot.yml以使app服务器连接到特定阶段端口的数据库服务器
以上适用于X个产品/分期solrs实例。
Tomcat6 + Sunspot并不那么容易和具有时间/结果的效果。据我所知(修正我),人们必须:
- 在数据库服务器上安装和维护tomcat
- 如果我们想要3个solr实例-则部署3个具有单独solrs的solr wars(或使用相当难以设置的多核心solr)
- 将Rails项目部署到数据库服务器上
- 每次我们在Rails中更改模式/配置/任何内容时,我们都必须生成solr xml和confs并将其复制到tomcat webapps中
- 修改solr conf/xml中的目录,使其指向索引文件等。
- 在每个rails部署中重新加载tomcat solr应用程序实例,其中包括一些脚本和"非rails"方法来进行部署过程:)