【问题标题】:Compojure: lein-ring in production?Compojure:生产中的 lein 环?
【发布时间】:2014-08-06 17:32:32
【问题描述】:

似乎人们建议使用 lein-ring 来轻松部署 Compojure 应用程序。不就是为了发展吗?我已经对使用 lein-ring 运行的同一个应用程序与使用 uberjar 的 leiningen 打包(使用 java -jar 执行,它包含 ring-jetty)进行了基准测试。

令我惊讶的是,使用 lein-ring 的性能甚至更好!我错过了什么吗?

我怎样才能继续使用 lein-ring 但避免在异常情况下打印出堆栈跟踪并避免检查修改过的文件?

谢谢

【问题讨论】:

标签: clojure leiningen compojure


【解决方案1】:

lein-ring 将允许您轻松生成用于部署到容器的 war 文件(并作为 lein-beanstalk 的基础 以便轻松部署到 Amazon 的 Elastic Beanstalk),但我不知道在生产中使用它的常见做法。当然是一种选择,但可能很少是最好的选择。我建议使用您的主机/容器推荐的方法进行部署;这通常意味着部署战争(可以使用 lein-ring 构建)或使用嵌入式 Jetty 实例的各种无容器部署(如 Heroku 和 Leiningen)。

如果您确实想在生产环境中使用 lein-ring,但又想关闭其开发时功能(代码重新加载、堆栈跟踪渲染等),则必须设置 RING_ENV 环境变量为production,例如:

export RING_ENV=production
lein ring ...

【讨论】:

    【解决方案2】:

    lein-ring 是一个仅用于开发的工具。当然,打包和部署应用程序的方式会对性能产生影响。你真的在这里比较苹果和苹果吗?

    我发现 lein-ring 甚至只是嵌入式码头部署存在显着差异。

    话虽如此,使用 lein-ring 你会错过很多东西。将您的应用程序放在适当的容器中将在操作支持和可监控性方面提供更多。

    【讨论】:

      猜你喜欢
      • 2013-07-16
      • 2011-12-14
      • 2014-09-13
      • 2019-10-14
      • 2018-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多