对于 webflux ,我的理解是在网络请求响应的时候,使用异步 IO ,基于 io 多路复用,提升系统吞吐量。在 controller 中,比如线程把 HttpRequest 给到 controller ,然后马上返回去处理其他任务,不用等待业务代码的执行。
我的疑问
1 、在我的业务逻辑中,使用到的数据库操作,也必须是异步非阻塞的吗?比如目前提供的 redis 、mongodb 、mysql 的支持库。还是说,其实这些异步库,可以用传统的同步阻塞方式去操作磁盘 IO 。(这样子做,webflux 的优势只发挥在网络请求的那部分)
2 、这些异步支持库,本质上是不是类似 nio ,通过监听 IO 事件,然后 attach handler 来完成整个业务逻辑?
我的疑问
1 、在我的业务逻辑中,使用到的数据库操作,也必须是异步非阻塞的吗?比如目前提供的 redis 、mongodb 、mysql 的支持库。还是说,其实这些异步库,可以用传统的同步阻塞方式去操作磁盘 IO 。(这样子做,webflux 的优势只发挥在网络请求的那部分)
2 、这些异步支持库,本质上是不是类似 nio ,通过监听 IO 事件,然后 attach handler 来完成整个业务逻辑?