端到端反应式流媒体 RESTful 服务(也称为 HTTP 上的背压)

2024-01-26

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

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

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

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

希望我说得足够清楚,有人能够对此事做出一些解释。
无论如何,谢谢!


您来对地方了,可以向 Akka 提问 :-)

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

1)一是Roland Kuhn 在 ScalaDays SF 2015 上的演讲 https://www.parleys.com/tutorial/akka-http-reactive-web-toolkit: http 演示的反压在本次演讲的第 44 分钟左右开始。

2) 我在 2015 年华沙 ScalarConf 上的演讲 https://www.youtube.com/watch?v=WnTSuYL4_wU。溪流部分在18分钟左右开始, 反压演示出现在第 24 分钟左右。它显示了“快速处理”和“慢速处理”服务器,您可以在其中看到 上传文件时,curl 客户端会受到反压(我使用文件作为示例,因为这是一个很好的“大请求”)。

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

我希望这有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

端到端反应式流媒体 RESTful 服务(也称为 HTTP 上的背压) 的相关文章

  • 使用 PHP PayPal REST API 退款?

    我正在开发一个集成到 PayPal 的 REST API 中的 PHP 应用程序 我正确处理了事务并将事务 ID 保存到 MySQL 数据库中 我现在正在尝试退款 但无法让它停止给出 传入 JSON 请求未映射到 API 请求 错误 有人对
  • Scala 为了在 JVM 上运行做出了哪些妥协?

    Scala 是一种很棒的语言 但我想知道如果它有自己的运行时 如何改进 IE 由于 JVM 的选择 做出了哪些设计选择 我所知道的两个最重要的妥协是 类型擦除 http java sun com docs books tutorial ja
  • Spark:导入UTF-8编码的文本文件

    我正在尝试处理一个包含很多特殊字符的文件 例如德语变音符号 o 等 如下所示 sc hadoopConfiguration set textinputformat record delimiter r n r n sc textFile f
  • git 是否有任何静态接口?

    我一直在寻找一个宁静的 git api 但似乎没有找到 我得到的最接近的是 Github 的 api 来访问一些存储库信息 还有其他的实施吗 Orion Git API http wiki eclipse org Orion Server
  • 如何为新的 Silverlight 应用程序在 WCF、REST、POX 和 RIA 服务之间进行选择

    There a lotSilverlight 应用程序连接回其服务器的不同方式 包括 WCF Windows 通信基础 http msdn microsoft com en us netframework aa663324 aspx RES
  • Java时间转正常格式

    我有 Java 时间1380822000000 我想转换为我可以阅读的内容 import java util Date object Ws1 val a new Date 1380822000000 toString 导致异常 warnin
  • 如何使用 zio-test 测试异常情况

    我有以下功能 我想测试 def people id Int RIO R People 如果有 People 则此函数返回 Peopleid 分别 如果没有则失败 例如 IO fail ServiceException s No People
  • 将多个 Future[Seq] 连接成一个 Future[Seq]

    如果没有 Future 这就是我将所有较小的 Seq 组合成一个大 Seq 的方式flatmap category getCategoryUrlKey id Int Seq Meta main method val appDomains S
  • Marklogic REST API 搜索最新文档版本

    我们需要使用 Marklogic 的 REST API 将 MarkLogic 搜索限制为托管文档的最新版本 我们正在使用 MarkLogic 6 使用直接 xquery 您可以使用dls documents query 作为附加查询选项
  • Spark 对 RDD 中按值排序

    我有一个火花对 RDD 键 计数 如下 Array String Int Array a 1 b 2 c 1 d 3 使用spark scala API如何获取按值排序的新RDD对 所需结果 Array d 3 b 2 a 1 c 1 这应
  • 引用Scala中内部类的类型

    下面的代码尝试模仿DSL 的多态嵌入 http www daimi au dk ko papers gpce50 hofer pdf 而不是给出行为Inner 它被编码在useInner其封闭类的方法 我添加了enclosing方法 以便用
  • 在 Scala 中设计方便的默认值映射

    我发现自己使用了很多嵌套映射 例如 Map Int Map String Set String 并且我希望在访问新密钥时自动创建新的 Map Set 等 例如 像下面这样 val m m 1992 foo bar 请注意 如果不需要 我不想
  • @Valid 不适用于弹簧休息控制器

    我将休息端点方法定义为 GetMapping get public ResponseEntity getObject Valid MyObject myObject 这会将请求参数映射到 MyObject MyObject 定义为 带有 l
  • 源值 1.5 的错误已过时,将在未来版本中删除

    我使用 scala maven plugin 来编译包含 scala 和 java 代码的项目 我已经将源和目标设置为1 7 但不知道为什么maven仍然使用1 5 这是我在 pom xml 中的插件
  • 以 REST 方式更新整个资源集合

    我有一个资源列表的 REST URI 例如 http foo com group users 这些用户中的每一个都有一个序列号 我想公开一种方法来为集合中的所有用户重新编号这些值 并使访问该列表的每个人都可以使用此更改 由于这是对整个集合的
  • Scala 中的超时未来

    假设我有一个函数 它调用一个阻塞可中断的手术 我想在超时的情况下异步运行它 也就是说 我想在超时到期时中断该功能 所以我正在尝试做这样的事情 import scala util Try import scala concurrent Fut
  • 同时使用 localStorage 和 REST 远程服务器的数据层架构

    任何人对于如何实现同时使用 localStorage 和 REST 远程存储的数据持久层都有任何想法或参考 某个客户端的数据存储在 localStorage 中 使用 ember data indexedDB 适配器 本地存储的数据与远程服
  • 使用 C++ REST SDK Casablanca 发送 HTTP POST 请求以更新文件内容

    我正在尝试使用 C Rest sdk 更新 alfresco 服务器中的文件内容 我正在使用 alfresco CMIS url 发送请求 更具体地说 它是 Alfresco CMIS 浏览器绑定 我必须坚持浏览器绑定而不是原子绑定 当我发
  • 无效数据的 REST 响应代码

    如果出现以下情况 应将什么响应代码传递给客户端 用户注册时传递了无效数据 例如电子邮件格式错误 用户名 电子邮件已存在 我选择了403 我还发现了以下我觉得可以用的 维基百科 412 前提条件失败 服务器不满足请求者要求的先决条件之一 提出
  • 将 REST 服务与 Android 应用程序同步

    我使用一个 REST 服务来填充数据库中的信息 稍后由我的应用程序使用 我已经阅读了有关此事的多个主题 现在必须决定如何在 REST 服务和数据库之间实现同步 想象一个应用程序 它从谷歌金融 API 获取有关股票的信息并将其存储在数据库中

随机推荐