首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用R2DBC的Micronaut Data是一种比经典的“每个连接一个线程”模型更具伸缩性的方法吗

使用R2DBC的Micronaut Data是一种比经典的“每个连接一个线程”模型更具伸缩性的方法吗
EN

Stack Overflow用户
提问于 2020-10-22 23:40:15
回答 1查看 515关注 0票数 8

根据micronaut-data reactive guide的说法,

"...在反应式执行的情况下,如果后备实现是阻塞的,Micronaut Data将使用配置的I/O线程池在不同的线程上调度查询执行。

如果支持实现本机支持驱动程序级别的反应式类型,则不使用I/O线程池,而是假定驱动程序将以非阻塞方式处理查询……“

我的直接问题是:访问关系数据库(例如,PostGres R2DBC driver)抛出R2DBC是否会依赖R2DBC驱动程序将以非阻塞方式处理的Micronaut数据,并具有更高的可扩展性?

假设我的微服务公开了一个基于ReactiveX的反应式端点,并且必须访问一个阻塞数据源,抛出Micronaut Data JDBC (例如,在生产版本中还没有Oracle R2DBC ),从上面可以清楚地看到,它在访问数据时“将使用配置I/O线程池”。我是不是完全失去了反应式端点的好处?

这是我与Micronaut的第一个项目,我有几个项目是反应式的。我远不是反应式最佳实践的专家,但我记得我读过几篇博客:如果你有阻塞源,请避免使用反应式堆栈。我还记得我曾经读过,将非阻塞和阻塞设计混合在一起可能会产生更糟糕的结果,主要是因为Eventloop (例如:Netty)是设计的。由于我将与ReactiveX和关系数据库一起使用Micronaut,一些案例与R2DBC一起使用,而另一些案例与JDBC一起使用,因此我将感谢您对我的疑问的任何评论。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-16 21:13:42

您并没有完全失去这些好处,因为如果您有不阻塞的HTTP请求,您可以用JDBC逻辑组合这些操作。

但是,如果您希望使用R2DBC实现真正的无阻塞,请参阅https://github.com/micronaut-projects/micronaut-r2dbc/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64485758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档