5

我一直试图在网上澄清这个问题一段时间没有成功,所以我会尝试在这里问它。

我想找到一些资源或示例来展示我如何构建端到端完全背压的 REST 服务 + 客户端。我的意思是,我希望看到,给定一个实现 Reactive Streams 的 REST 客户端(无论是在 Akka、JS 还是其他),我将拥有(并且能够“可视化”)在整个过程中处理的背压REST 服务器构建,例如使用 Akka-Http。

需要明确的是,我正在寻找类似以下谈话的内容(但我找不到幻灯片或视频来确认它): http: //oredev.org/2014/sessions/reactive-streaming-restful-applications-with-akka -http

我对我看到的大多数示例的怀疑是关于我可以找到很多 REST 服务(服务器)在后端使用 Akka Http 和 Akka 流的情况,但我不确定背压是否通过 HTTP “通信”和 REST,如果客户端正在实现 Reactive Streams。在这种情况下,我会通过 TCP/HTTP 桥接一个“流”还是只有 2 个独立的流?这是我主要的怀疑和困惑。

希望我足够清楚,有人能够对此事有所了解。
无论如何,谢谢!

4

1 回答 1

11

你来对地方问 Akka 问题了 :-)

我知道有两个演讲展示了使用 http 时背压机制如何真正工作的演示。

1) 一个是Roland Kuhn 在 ScalaDays SF 2015 上的演讲:http 演示的背压在本演讲的第 44 分钟左右开始。

2)我在 ScalarConf Warsaw 2015上的演讲。溪流部分在 18 分钟左右开始,背压演示在第 24 分钟左右出现。它显示了一个“快速处理”和“慢速处理”服务器,您可以在其中看到 curl 客户端在文件上传时被背压(我使用文件作为示例,因为它是一个很好的“大请求”)。

由于 TCP 内置机制,背压被传播到客户端 - 在服务器端,我们只是在需求可用之前不从套接字读取,这会导致背压正确传播。

我希望这有帮助!

于 2015-05-20T12:57:32.383 回答