关于 non-blocking 数据库 Connector 大家是怎么看待的?

2023-02-17 17:45:56 +08:00
 OldCarMan

rt

2331 次点击
所在节点    Java
25 条回复
echoless
2023-02-18 16:03:52 +08:00
python 是有的 https://github.com/MagicStack/asyncpg

主要是 async io 传染, 写起来更麻烦, python 语言层级支持 async, 用的人还不多.

大部分应用不需要 async 带来的好处, 当然不愿意付出代价.
dreamlike
2023-02-18 17:31:54 +08:00
我上面的评论有些跳跃了
https://juejin.cn/post/7181664513559625788
其实可以扩大一些说 client 是否有必要都是 non blocking 的 我之前写过一篇文章来表述自己的观点
我觉得 api 是没必要的 但是底层实现是有必要的 这种应该交由 runtime 全做了
OldCarMan
2023-02-18 23:51:35 +08:00
@wuhaoecho 嗯嗯,不过个人感觉未来 non-blocking 数据库客户端将会是趋势,现在麻烦主要是,语言生态没有整体发力,就如 java ,最近版本才支持 virtual Thread,市面上又缺乏一整套从控制层到数据访问层的成熟框架,所以推广起来稍微麻烦,不过随着 reactive coding 的发展,未来大概率各个环节都趋向于 reactive 的风格。
@dreamlike 谢谢补充,话说你这里提的 runtime 是指 java 运行时吗?意思是通过重返 runtime 环境,使用 mounting /unmounted (虚拟线程) 来控制程序 blocking 的方式吗?
dreamlike
2023-02-19 03:18:35 +08:00
@OldCarMan 可以理解为语言的 runtime 的一部分
我用 rust 举个例子,所谓的协程 runtime 就是指的从 io 轮询器(eventloop),到基于这些 eventloop 做的 io api(async read) 一整套包揽,提供一组同步风格但是底层为异步的 io 操作
OldCarMan
2023-02-19 13:54:15 +08:00
@dreamlike 你意思是语言层面要支持异步 io ,对吧?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/917007

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX