【问题标题】:Reactive or non-reactive HTTP client should I choose to receive a big JSON in response?我应该选择接收大 JSON 作为响应还是响应式或非响应式 HTTP 客户端?
【发布时间】:2020-05-13 22:22:16
【问题描述】:

我需要接收相对较大的 JSON (~300KB) 作为对 POST 请求的响应。 对此,我有以下问题: 1) 选择哪一个 - 反应式(例如 WebFlux)或非反应式(例如 Feign)HTTP 客户端以实现最佳性能? (每秒最多约 20 个请求)

2) 我的理解是否正确,我们可以将响应式样式请求发送到任何服务器? (或者我们应该考虑服务器是否能够与响应式客户端一起工作)

3) 如果我选择使用非响应式客户端,我将如何处理请求队列? (很明显,接收这么大的 JSON 响应需要一些时间)

谢谢!

【问题讨论】:

  • 保持简单,选择更容易为您实施的解决方案。每秒 20 个请求并不是响应式为您提供显着优势的东西。
  • 谢谢你的回答,马丁!

标签: json rest httpclient spring-webflux feign


【解决方案1】:
  1. 无论用例如何,反应式架构总是获得相同或更好的性能指标:I/O 操作使线程在非反应式编程中阻塞,但在反应式编程中,这些线程可以在其他进程中工作(例如,一个新的端点调用)同时。顺便说一句,feign 客户端有几个响应式实现。

  2. HTTP Rest 协议对于响应式和非响应式应用程序是相同的。如果您的应用程序是完全反应式的,并且您需要调用非反应式应用程序,那么唯一需要考虑的是 100% 的 CPU 使用率将仅在客户端实现,而不是在服务器端。

  3. 同样,响应式或非响应式与请求大小无关。您可能会遇到每秒 20 个请求且主体大小为 300KB 的问题,但这在反应式或非反应式应用程序中都会发生。

【讨论】:

    猜你喜欢
    • 2016-04-10
    • 2021-08-24
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多