在vert.x环境下使用基于阻塞jdbc的orm框架来访问数据库有什么大问题?

发布于 2022-09-12 03:02:48 字数 491 浏览 21 评论 0

我使用vert.x 创建一个自定义的tcp服务端实例程序来处理tcp服务,其中编写的代码包括使用基于阻塞jdbc的orm框架来进行数据库访问。在vert.x环境下使用基于阻塞jdbc的orm框架来访问数据库有什么大问题?

**我去vert.x官方核心文档和堆栈溢出技术网站看了一下,对于阻塞代码,=建议使用vert.executeBlocking,还有一个是使用 Worker verticles?那么各位使用过vert.x建议使用哪个呢,怎样妥善使用,有相关演示代码么?

访问数据库操作的话,是直接用创建服务端的vert实例使用,还是新开一个vert实例专门用来访问数据库?对于这方面比较合适的建议是哪个呢**,需要调整什么vert.x配置么?

我指的大问题不是说无法发挥出vert响应式异步的优点,而是这种情况下性能和并发不如传统的阻塞程序?

我目前使用的orm框架是tk.Mybatis,出于时间原因,目前现在不打算替换为vert.x的异步jdbc驱动组件(未来会换)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

錯遇了你 2022-09-19 03:02:48

首先 vertx的异步jdbc驱动只能支持 mysql 和PG,
我觉得只要设置 2CPU 的连接数 ,然后使用executeBlocking 来进行数据库操作,就不会影响vertx的吞吐量
因为 我认为基于多路复用的vertx netty之所以快,是因为处理并发请求的线程数 比 阻塞式的程序要少的多,这使得CPU 的使用更有效,而使用executeBlocking 来进行数据库操作 ,并不会加剧更多的线程,所以我觉得这样依旧还是比传统阻塞程序要高效。
具体代码你可以看下资料,我记得executeBlocking是会有专门线程池去做操作。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文