gpt4 book ai didi

netty - Micronaut Data with R2DBC 是不是比经典的 “one thread per connection” 模型 Micronaut Data JDBC 更具可扩展性的方法

转载 作者:行者123 更新时间:2023-12-03 17:17:56 27 4
gpt4 key购买 nike

根据 micronaut-data reactive guide ,
“……
在响应式执行的情况下,如果支持实现是阻塞的,Micronaut Data 将使用配置的 I/O 线程池在不同的线程上调度查询执行。
如果支持实现在驱动程序级别 native 支持 react 类型,则不使用 I/O 线程池,而是假定驱动程序将以非阻塞方式处理查询......”
我的直接问题:访问关系数据库(例如 PostGres R2DBC driver)抛出 R2DBC Micronaut Data 是否会依赖 R2DBC 驱动程序以非阻塞方式处理并且更具可扩展性?
假设我的微服务公开了一个基于 ReactiveX 的 Reactive 端点并且必须访问阻塞数据源抛出 Micronaut Data JDBC (例如,生产版本中还没有 Oracle R2DBC),从上面可以看出它在访问数据时“将使用配置 I/O 线程池”。我是否完全失去了响应式端点的好处?
这是我与 Micronaut 合作的第一个项目,我有几个采用 Reactive 方法的项目。我远不是响应式(Reactive)最佳实践方面的专家,但我记得我已经阅读了几篇博客:如果您有阻塞源,请避免使用响应式(Reactive)堆栈。我还记得读到过,将非阻塞与阻塞设计混合在一起可能会产生更糟糕的结果,这主要是因为 Eventloop(例如 Netty)的设计方式。由于我将 Micronaut 与 ReactiveX 和关系数据库一起使用,某些情况下使用 R2DBC,而其他情况下使用 JDBC,我将感谢对我的疑问的任何评论。

最佳答案

您并没有完全失去这些好处,因为如果您有没有阻塞的 HTTP 请求,您可以使用您的 JDBC 逻辑组合这些操作。
但是,如果您想使用 R2DBC 实现真正的非阻塞,请参阅 https://github.com/micronaut-projects/micronaut-r2dbc/

关于netty - Micronaut Data with R2DBC 是不是比经典的 “one thread per connection” 模型 Micronaut Data JDBC 更具可扩展性的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64485758/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com