如何解决如何从Spring Boot加载大量数据到reactjs?
我有两个应用程序,Spring Boot后端和React前端。我需要加载大量数据(比如说100000个对象,每个3个Integer字段),并将其呈现在传单地图上。但是我不知道我应该使用哪种协议。我考虑了两种方法:
- 使用REST进行此操作,每个请求1 000个(或更多/更少)对象,在前端创建一些进度条,以便用户不会一直刷新页面,因为他认为有问题。
- 使用websocket可以吗,所以更快吗?与进度条的想法相同,但是我担心如果用户开始刷新页面,即使前端的连接崩溃并建立了新的连接,后端也会传输数据,对于新的连接,处理也会开始,依此类推。
如果值得一提,我正在使用spring-boot 2.3.1以及spring cloud(eureka,spring-cloud-gateway)。我选择的Websocket是SockJS,SimpMessagingTemplate正在从org.springframework.messaging.simp.SimpMessagingTemplate中传输数据。
解决方法
如果您有那么多数据和大量读写操作,我建议不要在websocket或rest调用(reactor或MVC)中通过tcp发送大量数据的问题上返回它,我建议非常简单,将数据保存到Storage(例如,AWS S3),返回S3存储桶url,然后从客户端直接从S3中读取数据,
或者,您可以有一个消息队列,其中客户端在(pub / sub)上进行订阅,在服务器端发布数据,然后在客户端进行订阅,但这可能是一个过大的选择。
如果您处于休息状态,则可以使用多部分数据,请参见此处的堆栈溢出问题: