Akka Http Code vrs Spring Boot Application

时间:2017-08-20 06:36:11

标签: spring-boot akka-http

我是Akka HTTP的新手,我最近从Spring Boot应用程序迁移到Akka HTTP,看到了Actor模型的好处,但我遇到了一个问题。

Spring引导中的

max-connection属性允许为spring boot应用程序设置max connection属性,我无法在新的akka​​ http应用程序中设置它。

仅供参考:我使用akkaHTTP开发了新的应用程序,但是就最大连接和响应时间而言,akkaHTTP的性能比较报告与SpringBoot应用程序相比要少得多。为了测试,我使用Jmeter将负载放在两个应用程序中,但对于每秒2000个用户,akkaHTTP代码非常糟糕,弹簧启动非常棒。因此,在分析过程中,我发现一个属性为max-conection,我在spring-boot中配置它可以提高它的性能。

如何在akkaHTTP中设置?任何人都可以帮我完成这项工作。

注意:我看过akkahttp代码的此配置 http://doc.akka.io/docs/akka-http/10.0.9/scala/http/configuration.html 但无法弄清楚如何使用它。

由于

1 个答案:

答案 0 :(得分:2)

基于文件的配置

如您提供的链接所示:

  

通常这意味着您提供了包含的application.conf   所有与默认设置不同的特定于应用程序的设置   由个人的参考配置文件提供的   Akka模块。

在我基于sbt的项目中,目录结构如下:

/projectDir
           /build.sbt
           /resources
                     /application.conf
           /src
               /main
                    /scala

/projectDir/resources/application.conf中,您可以添加配置:

akka.http {
  max-connections = 42
}

ActorSystem

automatically get picked up
  

这意味着默认是解析所有application.conf,   application.json和application.properties在根目录下找到   类路径 - 请参阅上述文档   的信息。

基于代码的配置

您也可以在代码中指定参数:

val config : Config = 
  ConfigFactory parseString """akka.http.max-connections = 42"""

然后使用此配置创建ActorSystem:

implicit val actorSystem = ActorSystem("actorSystemName", config)
implicit val materializer = ActorMaterializer()

val bindingFuture = Http().bindAndHandle(...)