似乎人们建议使用lein-ring来进行Compojure应用程序的简单部署 . 这不仅仅意味着发展吗?我用lein-ring和leiningen用uberjar打包的同一应用程序(用java -jar执行,它包含ring-jetty)进行基准测试 .
令我惊讶的是,lein-ring的性能甚至更好!我错过了什么吗?
如何继续使用lein-ring但是在出现异常时避免打印堆栈跟踪并避免检查修改后的文件?
谢谢
lein-ring是一个开发唯一的工具 . 当然,打包和部署应用程序的方式会对性能产生影响 . 你真的在这里比较苹果和苹果吗?
我发现lein-ring甚至只是嵌入式码头部署存在显着差异 .
话虽这么说,你可以错过很多东西 . 将您的应用程序放在适当的容器中将在操作支持和可监控性方面提供更多 .
lein-ring将允许您轻松生成用于部署到容器的war文件(并作为lein-beanstalk的基础,以便轻松部署到Amazon 's Elastic Beanstalk), but I'm,不知道在 生产环境 中使用它的常见做法 . 当然可以选择,但可能我建议使用主机/容器推荐的方法进行部署;这通常意味着部署战争(可以使用lein-ring构建)或使用嵌入式Jetty的各种无容器部署实例(与Leiningen的Heroku一样) .
如果你想在 生产环境 中使用lein-ring但想要关闭它的开发时间功能(代码重新加载,堆栈跟踪渲染等),你必须将 RING_ENV 环境变量设置为 production ,例如:
RING_ENV
production
export RING_ENV=production lein ring ...
2 回答
lein-ring是一个开发唯一的工具 . 当然,打包和部署应用程序的方式会对性能产生影响 . 你真的在这里比较苹果和苹果吗?
我发现lein-ring甚至只是嵌入式码头部署存在显着差异 .
话虽这么说,你可以错过很多东西 . 将您的应用程序放在适当的容器中将在操作支持和可监控性方面提供更多 .
lein-ring将允许您轻松生成用于部署到容器的war文件(并作为lein-beanstalk的基础,以便轻松部署到Amazon 's Elastic Beanstalk), but I'm,不知道在 生产环境 中使用它的常见做法 . 当然可以选择,但可能我建议使用主机/容器推荐的方法进行部署;这通常意味着部署战争(可以使用lein-ring构建)或使用嵌入式Jetty的各种无容器部署实例(与Leiningen的Heroku一样) .
如果你想在 生产环境 中使用lein-ring但想要关闭它的开发时间功能(代码重新加载,堆栈跟踪渲染等),你必须将
RING_ENV
环境变量设置为production
,例如: