Akka HTTP反向压力连接



文档中说在Http().bindAndHandle():

连接源上没有反压力,即:所有连接都以最大速率被接受,这取决于在应用程序上,可能会出现DoS风险!

同样适用于bindAndHandleAsync()bindAndHandleSync()

文档还指出,即使是更高级别的系统,如文件IO或TCP,我认为HTTP是在TCP之上,将通过响应流机制工作。

Http().bind()是魔函数吗?这会产生反压力吗?

如何使用akka-streams公开反向施压的HTTP端点?

在Java中是这样的

Flow<ByteString, ByteString, BoxedUnit> dataFlow = ...;
Http
            .get(actorSystem)
            .bind(host, port, materializer)
            .to(foreach(con -> {
                logger.info("Accepted connection from {}.", con.remoteAddress());
                con.handleWith(dataFlow, materializer)
            }))
            .run(materializer);

dataFlow是任何转换传入消息并将其映射到响应事件的流。这样你就能从所有的响应式流中受益。

你也可以尝试使用http路由和简单的Tcp。

相关内容

  • 没有找到相关文章

最新更新