【问题标题】:How to deploy a Scala/Akka application?如何部署 Scala/Akka 应用程序?
【发布时间】:2017-06-26 04:41:14
【问题描述】:

我正在开发一个订阅 Instagram 实时更新(用户)的应用程序。我需要提供一个 urlcallback 以接收用户更新。

 Curl -F 'client_id=CLIENT-ID' \
 -F 'client_secret=CLIENT-SECRET' \
 -F 'object=user' \
 -F 'aspect=media' \
 -F 'verify_token=myVerifyToken' \
 -F 'callback_url=http://YOUR-CALLBACK/URL' \
 https://api.instagram.com/v1/subscriptions/

现在我的应用程序正在本地主机上运行。 如何部署 Scala 应用程序以获得真正的 urlcallback?

【问题讨论】:

  • 您可以使用github.com/sbt/sbt-native-packager 创建deb、rpm、docker 包并将您的应用程序安装到您的服务器。
  • 您也可以构建一个独立/普通的 JAR,并使用 java -jar 启动它...

标签: scala akka akka-http


【解决方案1】:
  1. 通过修改 build.sbt 和 project/plugins.sbt 文件在您的项目中配置 sbt-native-packager。
  2. 使用 sbt-native-packager 在本地计算机或像 Jenkins 这样的构建服务器上构建应用程序。这将创建一个 zip、docker 映像、rpm 或 Debian。如果您运行像 Ubuntu 这样的 Debian 类型服务器,Debian 文件将是最简单的选择。
  3. 将刚刚创建的文件上传到您的服务器,例如使用 scp 或 rsync。构建创建的文件位于项目的目标目录中。
  4. 在您的服务器上安装您的应用程序。如果您正在运行 Debian 类型的服务器(如 Ubuntu)并在构建过程中创建了一个 Debian 文件,一个简单的 dpkg -i 将安装您的应用程序。
  5. 在您的情况下,您应该安装像 nginx 这样的代理,并将您的应用程序配置为 nginx 后端。见:http://nginx.org/en/docs/http/ngx_http_upstream_module.html

【讨论】:

    【解决方案2】:

    您可以使用sbt-assembly 插件,在控制台中使用“sbt assembly”制作一个胖罐,然后执行 java -jar aplication.jar。

    【讨论】:

      【解决方案3】:

      有几种方法可以部署您的 Scala 应用程序。如果它是一个 Web 应用程序,那么您可以将该应用程序打包在一个 .war 文件中并部署在任何具有 Web 服务器的机器上。另一种选择是您可以使用 AWS EC2 实例或 AWS Elasticbeanstalk 服务来部署您的 .war 文件.无论如何,您的 urlCallback 将是“http://:/”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-10
        • 2011-03-02
        • 1970-01-01
        • 1970-01-01
        • 2015-12-22
        • 2011-04-02
        • 2017-02-19
        相关资源
        最近更新 更多