我是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 但无法弄清楚如何使用它。
由于
答案 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
:
这意味着默认是解析所有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(...)