0

假设我们有 2 个休息服务:

// a rest controller
@GetMapping
private List<Employee> getAllEmployees() {
    return employeeRepository.findAllEmployees();
}

// 另一个控制器

@GetMapping
private Flux<Employee> getAllEmployees() {
    return employeeRepository.findAllEmployees(); // suppose reactive db driver here
}

这段代码之间客户端的网络浏览器有什么区别吗?

4

1 回答 1

1

正常休息控制器:假设服务器将返回大约 10000 条记录。在这种情况下,服务器等待数据库返回所有数据,并将这些数据作为响应转发。因此,您同时收到所有响应,浏览器将不断加载空白页面,这在这个现代时代是一种糟糕的体验

Reactive Controller:在 webflux spring Reactive Controller 中,它们是背压的概念。在背压中,它们是服务器和数据库之间的开放连接,因此无论接收到什么记录都将作为响应不断发出。因此没有黑屏和更好的用户体验。

注意:浏览器之间的连接将保持不变,直到所有数据都加载到浏览器中

于 2020-08-25T19:34:38.310 回答