【问题标题】:End-to-End Reactive Streaming RESTful service (a.k.a. Back-Pressure over HTTP)端到端反应式流式处理 RESTful 服务(又名通过 HTTP 的背压)
【发布时间】:2015-07-29 16:59:25
【问题描述】:

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

我想找到一些资源或示例来展示我如何构建端到端完全背压的 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,如果客户端正在实现响应式流。在这种情况下,我会通过 TCP/HTTP 桥接一个“流”还是只有 2 个独立的流?这是我主要的疑惑和困惑。

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

【问题讨论】:

  • 您是否尝试在 Akka 用户 Google 群组页面上提出此问题?在那里你可能会有更好的运气。

标签: scala rest akka akka-stream reactive-streams


【解决方案1】:

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

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

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

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

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

我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2017-09-13
    • 2017-01-07
    • 2011-05-04
    • 1970-01-01
    • 2015-08-04
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多