Java流休息API

gra*_*mao 6 java streaming reactive-programming

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

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

抱歉所有的问题。

Ale*_*dov 0

  1. 您使用 Javalush(),它在每个操作系统上的行为都是相同的,即使操作系统刷新可能有所不同。
  2. 客户端只看到一个数据流,它不依赖于它是如何生成的。

...

  1. 反应式编程与此没有任何共同之处。它用于最大限度地减少大量连接的内存消耗。如果客户端少于 1000 个,请使用普通同步多线程。编码和调试更容易。