当产生多条消息时,为什么Akka HTTP关闭用户连接?

时间:2019-04-16 18:31:35

标签: scala websocket connection akka akka-http

我有一个基于Akka HTTP / Reactive streams的简单WebSocket应用程序,例如 https://github.com/calvinlfer/akka-http-streaming-response-examples/blob/master/src/main/scala/com/experiments/calvin/ws/WebSocketRoutes.scala#L82

换句话说,我有SinkSource(由Publisher产生)和流程:

Flow.fromSinkAndSource(incomingMessages, outgoingMessages)

当我每秒向客户端发出多于30条消息时,Akka将关闭连接。

我无法理解配置此行为的设置在哪里。我了解OverflowStrategy,但是我没有明确配置它。

似乎我有OverflowStrategy.fail(),或者我的问题看起来很像。

1 个答案:

答案 0 :(得分:1)

您可以调整Internal buffers

方法有两种:

1) application.conf

akka.stream.materializer.max-input-buffer-size = 1024

2)您可以为您的Flow明确配置它:

Flow.fromSinkAndSource(incomingMessages, outgoingMessages)
  .addAttributes(Attributes.inputBuffer(initial = 1, max = 1024))