1. 应用侧有没有必要用 non-blocking 的 Connector 到数据库?
我的回答是有必要。目的是不要让数据库连接时占用珍贵的线程资源。
上面说没必要的,我怀疑是只写 java 的程序员。
2. 数据库有没有必要用 non-blocking ?
数据库存储引擎都是 callback+绑核,non-blocking 了就是写起来蛋疼。
数据库执行引擎瓶颈往往在 cpu 和 io 上,各种大锁一挂,即使用 non-blocking 接受请求也不会快到那里去。
因此接收请求是不是 non-blcking ,无关紧要,你看 tidb 不也是 go 得飞起。
3.non-blocking 有没有相对成熟的解决方案?
等 Virtual Threads
oracle jdbc 是支持最新 Virtual Threads ,不知道 mysql jdbc 什么时候支持了。
https://medium.com/oracledevs/introduction-to-oracle-jdbc-21c-driver-support-for-virtual-threads-189b918c56f4