我总是对如何将响应流回客户端感到困惑,例如一个大的 csv 文件,我想问一些问题:
我正在逐行读取文件并使用 flush()
一点一点地直接写入输出流,这是否足够,还是取决于 flush()
在特定操作系统上实现? 假设我有一台非常强大的机器并且只在最后刷新,客户端是否仍然可以以流方式处理答案(无需将所有内容加载到内存中)? 客户端提到响应可能没有分块,大概是Chunked_transfer_encoding ,那么这会如何影响响应呢?顺便说一句,当我发回文件时,我已经知道响应大小。 客户还谈了StreamingResponseBody
.我的理解是这仅用于异步处理,我们可以在不使用它的情况下将数据流回。 最后一个问题,响应式(Reactive)编程与此有关吗?我的用户案例非常简单,不涉及并发请求。我知道所有语言都有很多现代框架,但我更愿意先了解基本的东西。 抱歉所有的问题。
您使用 Java flush(),它在每个 O/S 上的行为都相同,即使 O/S 刷新可能不同。 客户端只看到一个不依赖于它是如何生成的数据流。 ...
响应式编程与此没有任何共同之处。它用于最大程度地减少大量连接的内存消耗。如果您的客户端少于 1000 个,请使用普通同步多线程。更容易编码和调试。