播放WS max连接

时间:2015-11-02 07:12:08

标签: scala playframework websocket playframework-2.0 typesafe-activator

我们有三个组件(A,B和C)。 “A”将数据发送到“B”和“B”处理数据,并使用播放WS将其发布到“C”。我们遇到“C”处理数据慢的情况,超时发生在“B”中。但是有很多数据在“B”中向内流动并且继续将其发布到“C”导致整个系统耗尽内存并最终崩溃。有没有办法限制“B”中的WS请求数量?搜索了游戏WS API,但没有运气。应如何处理?请建议。

2 个答案:

答案 0 :(得分:1)

问题不在于最大连接数,也没有与api相关的任何其他内容。此问题在分布式系统中很常见,并命名为"快速生产者和慢速消费者" 。还有更多的解决方案,我可以在这里写,但一个简短的清单将是:

  • 消息队列(对于ActiveMQ,请参阅Slow Consumer Handling
  • BackPressure(这是一种可以用一句话解释的方法;"生产者只在消费者要求",BTW,Akka Streams以优雅的方式提供数据时才发送数据)
  • 扩展(如果您希望系统更快,只需增加消费者的数量,并在它们之间平衡请求或使消费者更快),这是最直接的方法

编辑: 根据{{​​3}},您可以设置最大值。每个主机的连接或客户端库的总数,正如我上面提到的,正确的方法是改进架构,但这也可以帮助和节省一天。同时检查Documentation是否有所有配置选项。

答案 1 :(得分:0)