后端使用webflux或简单的rest控制器时,Web浏览器有什么区别吗?

问题描述

假设我们有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
}

代码对客户的Web浏览器有什么区别?

解决方法

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

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

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