加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何将我的喷雾API部署到生产中?

发布时间:2020-12-16 09:42:42 所属栏目:安全 来源:网络整理
导读:我正在考虑将我本来已经在本地测试的休息api部署到云端的过程,让我们将基础设施即服务(而不是像Heroku这样的服务平台)称为亚马逊。 我的本地环境与sbt建立起来,但我的问题是如何在生产环境中部署? 定义一个进程是否合理,其中devops从git repo中提取最新
我正在考虑将我本来已经在本地测试的休息api部署到云端的过程,让我们将基础设施即服务(而不是像Heroku这样的服务平台)称为亚马逊。

我的本地环境与sbt建立起来,但我的问题是如何在生产环境中部署?

定义一个进程是否合理,其中devops从git repo中提取最新的更改,然后简单地执行sbt run?

我想知道使用scala spray sbt的团队如何将他们的apis部署到生产环境中。

解决方法

我们服务的核心是scala akka spray mongo。所以我们使用GitHub进行版本控制。在合并检查公关到主分公司后,jenkins自动测试“建造”项目。如果所有测试都成功,Jenking会运行几个脚本:

>增加项目版本(目前写在shell中,但会更改为sbt)
>运行装配任务与sbt-assembly
>运行部署脚本(用Fabric编写的Python),将我们的jar部署到EC2

在第三步的基础上你有几个选择:

使用IO / Spray启动文件制作一个可运行的jar:

object Boot extends App {
  implicit val system = ActorSystem("ServiceName")
  val log = system.log
  val service = system.actorOf(Props[Service],name="serviceActor")
  IO(Http) ! Http.Bind(service,interface = host,port = port)
}

做一个可运行的jar作为Akka的微内核:

在这种情况下,您应该扩展Bootable trait并覆盖启动和关闭方法:

class Kernel extends Bootable {
  // many lines of code
  def startup() {
    scheduler.start()
    SomeActorSystem.startup()
  }

  def shutdown() {
    scheduler.shutdown()
    SomeActorSystem.shutdown()
    system.shutdown()
  }
}

使用TypeSafe startscript:

不能显示一个例子,但它有一个很好的介绍github =)

在不同的情况下,我们都以这种方式使用。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读