SOLR在Elastic Beanstalk上

时间:2013-05-30 11:50:12

标签: solr elastic-beanstalk

我想在Elastic Beanstalk上运行SOLR服务器。但我在网上找不到那么多。

一定有可能,因为有些人已经在使用它了。 (https://forums.aws.amazon.com/thread.jspa?threadID=91276即。)

任何想法我怎么能这样做?

好吧,不知怎的,我可以将solr warfile上传到环境中,但后来变得复杂了。 我在哪里放置配置文件和索引目录,以便每个实例都能到达它?

1 个答案:

答案 0 :(得分:2)

编辑:请记住,这个答案是从2013年开始的。这里提到的产品可能已经发展。我更新了文档链接以反映solr集群wiki中的更改。我鼓励您在阅读此信息后继续研究。

ORIGINAL: 如果您计划仅使用单个服务器部署,那么在beanstalk实例上运行solr才真正有意义。在您想要扩展应用程序的那一刻,您需要配置beanstalk环境,以创建solr cluster或移动到CloudSearch之类的东西。如果您不熟悉ec2生命周期和solr部署,那么CloudSearch几乎肯定会节省您的时间(阅读资金)。

如果您确实想在单个实例上运行solr,那么您可以使用rake通过将文件添加到名为.ebextensions/solr.config的本地仓库中来启动它,其中包含以下内容:

container_commands:
  01create_post_dir:
    command: "mkdir -p /opt/elasticbeanstalk/hooks/appdeploy/post"
    ignoreErrors: true
  02killjava:
    command: "killall java"
    test: "ps uax | grep java | grep root"
    ignoreErrors: true

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/99_start_solr.sh":
    mode: "755"
    owner: "root"
    group: "root"
    content: |
        #!/usr/bin/env bash
        . /opt/elasticbeanstalk/support/envvars
        cd $EB_CONFIG_APP_CURRENT
        su -c "RAILS_ENV=production bundle exec rake sunspot:solr:start" $EB_CONFIG_APP_USER
        su -c "RAILS_ENV=production bundle exec rake db:seed" $EB_CONFIG_APP_USER
        su -c "RAILS_ENV=production bundle exec rake sunspot:reindex" $EB_CONFIG_APP_USER

如果您使用自动缩放,请记住这会导致混乱