应用级后压力与TCP天然流量控制



我正在研究为什么某些系统在TCP提供本地流量控制的情况下实现应用程序级的后压。

我尤其是在阅读akka-streams和(更高级别的讨论(反应流。

是否只是为了从网络和TCP协议中抽象出异步通信的想法?

其他更精确的问题:

  • 如果应用程序(例如Akka-streams应用程序(最终通过TCP进行通信,它会落到TCP的本机回压吗?

  • 反应流可以通过简单地将TCP处理?

  • 在TCP顶部实现应用程序级的后压吗?

任何帮助和指针都将不胜感激!谢谢:(

我认为您的问题的基本假设是TCP是流管线中唯一的外部通信。

假设您的流在几个IO频道上进行通信,例如文件IO,数据库查询和控制台的标准输出:

//Read Data from File --> DB Query --> TCP Server Query --> Slow Function --> Console

通过整个管道,Akka-stream实现将提供异步,后压的。因此

您是正确的,即Akka的流程道的TCP Server部分的实现依赖于TCP的"本机背压"。从文档中:

...通过使用akka流,您不必手动做出反应 反向压力信号,因为图书馆为您透明地做。

最新更新