【问题标题】:How to load huge amount of data from spring boot to reactjs?如何将大量数据从spring boot加载到reactjs?
【发布时间】:2020-11-30 18:12:55
【问题描述】:

我有两个应用程序,spring boot 后端和 react 前端。我需要加载大量数据(假设 100 000 个对象,每个 3 个整数字段),并将其呈现在传单地图上。但是我不知道我应该使用哪种协议。我想到了两种方法:

  1. 使用 REST 执行此操作,每个请求 1000 个(或更多/更少)对象,在前端创建一些进度条,这样用户就不会一直刷新页面,因为他认为有问题。
  2. 用 websocket 做,这样更快吗?与进度条相同的想法,但是我担心如果用户开始刷新页面,即使来自前端的连接崩溃并建立了新的,后端也会流式传输数据,对于新的进程也会开始,依此类推.

如果值得一提,我使用的是spring-boot 2.3.1,以及spring cloud(eureka,spring-cloud-gateway)。我选择的 Websocket 是 SockJS,SimpMessagingTemplate 从 org.springframework.messaging.simp.SimpMessagingTemplate 流式传输数据。

【问题讨论】:

  • 谈到 REST 时,我在我的应用程序中使用项目反应器,所以所有响应都是 FLUX。

标签: reactjs spring-boot rest spring-websocket data-stream


【解决方案1】:

如果你有这么多的数据和大量的读写操作,我建议不要在 websocket 或 rest 调用(reactor 或 MVC)中返回它,通过 tcp 发送大量数据有问题,我建议的是很简单,将数据保存到Storage(例如AWS S3),返回S3 bucket url,从客户端直接从S3读取数据,

或者,您可以拥有一个客户端订阅的消息队列(发布/订阅),在服务器端发布数据,并在客户端订阅它,但这可能有点矫枉过正。

如果您处于休息状态,您可以使用多部分数据,请参阅此处的堆栈溢出问题:

Multipart example

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 2016-10-03
    • 2014-07-09
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多