对于一个足以处理多个请求(不会耗尽线程)的系统,从用户角度来看,在响应时间/速度方面会有区别吗?
而且,数据库是唯一通常阻塞线程的东西,因此我们需要反应式数据库驱动程序吗? 我的意思是,如果其余端点不对db进行调用,则该端点是否是反应性的就不会有任何区别?
答案 0 :(得分:0)
首先,您需要了解使用project-reactor-webflux客户端时会发生什么。
假设您的端点(称为/ demo)负责对其他系统进行5次异步调用,以从自身返回响应。
示例响应时间:
典型的非weblux客户端方式:
消耗5个线程,最后一个阻塞400ms。
Webflux客户端方式:
每次对服务A,B,C,D,E的调用都会占用一个线程,进行调用,返回线程,并且当响应到来时会消耗另一个线程来处理响应。
最终结论: 如果您的系统同时因大量请求(让它为n个)而超负荷运行,则将n个线程锁定400毫秒。
尝试想象问题的严重程度。