Java流休息API

标签 java streaming reactive-programming

我总是对如何将响应流回客户端感到困惑,例如一个大的 csv 文件,我想问一些问题:

  • 我正在逐行读取文件并使用 flush() 一点一点地直接写入输出流,这是否足够,还是取决于 flush()在特定操作系统上实现?
  • 假设我有一台非常强大的机器并且只在最后刷新,客户端是否仍然可以以流方式处理答案(无需将所有内容加载到内存中)?
  • 客户端提到响应可能没有分块,大概是Chunked_transfer_encoding ,那么这会如何影响响​​应呢?顺便说一句,当我发回文件时,我已经知道响应大小。
  • 客户还谈了StreamingResponseBody .我的理解是这仅用于异步处理,我们可以在不使用它的情况下将数据流回。
  • 最后一个问题,响应式(Reactive)编程与此有关吗?我的用户案例非常简单,不涉及并发请求。我知道所有语言都有很多现代框架,但我更愿意先了解基本的东西。

  • 抱歉所有的问题。

    最佳答案

  • 您使用 Java flush(),它在每个 O/S 上的行为都相同,即使 O/S 刷新可能不同。
  • 客户端只看到一个不依赖于它是如何生成的数据流。

  • ...
  • 响应式编程与此没有任何共同之处。它用于最大程度地减少大量连接的内存消耗。如果您的客户端少于 1000 个,请使用普通同步多线程。更容易编码和调试。
  • 关于Java流休息API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63340581/

    相关文章:

    react-native - 显示加载程序,直到实时链接图像未完全加载 React Native 0.58

    c# - 从 observablecollection 创建 observable<bool>

    java - 从字符串中提取域

    java - ehcache 不会在驱逐时从内存中删除元素

    amazon-web-services - Kinesis Firehose 是 Kinesis Streams 的替代品吗?

    iphone - 是否可以为 iPhone 创建播放列表的 .m3u8 播放列表

    swift - 绑定(bind)文本字段文本以启用按钮不起作用

    Java - 存储不断变化的 int 变量

    java - Setter 和 Getter 到不同的类

    c++ - 如何在 C++ 中从相机流式传输图像/数据