问题标签 [r2dbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
257 浏览

spring-webflux - 在 Spring Gateway 预过滤器中检查数据库的访问权限

我正在使用 Spring Gateway,我需要使用 DB 调用通过请求路径检查进一步的用户访问。我的存储库是这样的。

这是我当前使用自定义UsernamePasswordAuthenticationToken实现的过滤器。

但是,这里有几个问题,首先是阻塞调用。另外我不确定我需要变异exchange以返回这样的响应。无论如何使用 Spring Cloud Gateway 中的过滤器来实现这一点。

0 投票
1 回答
851 浏览

r2dbc - r2dbc-h2 驱动程序中的 H2 控制台

我正在使用 R2DBC-H2 驱动程序,我的 UR.L 是spring.r2dbc.url=r2dbc:h2:mem:///customer

使用此配置,SpringBoot 启动正常,但是,我无法访问 h2-console。

有谁知道为什么,我该如何解决?

0 投票
2 回答
2873 浏览

java - 如何在 r2dbc 中建立数据库连接?

如何在 r2dbc Spring boot 项目中建立 PostgreSQL 数据库连接?

我尝试了以下配置,它连接到数据库,但没有返回任何值

应用程序属性

模型

存储库

休息控制器:

它在控制台中打印输出,但在 JSON 中,我只得到空括号{}

正确的配置方法是什么?还需要什么其他配置吗?

0 投票
2 回答
2195 浏览

spring - 如何在 r2dbc-postgresql 中使用 EnumCodec

我正在尝试使用最新版本的 r2dbc-postgresql (0.8.4) 中的 EnumCodec 失败,我想知道您是否可以帮助我。

我也使用 spring-data-r2dbc 1.1.1 版。

我从 GitHub 中获取了确切的示例,并在我的 Postgres 中创建了一个枚举类型“my_enum”,以及一个包含“name”(文本)和“value”(my_enum)的表“sample_table”。

然后我按照示例进行操作:

SQL:

Java模型:

编解码器注册:

我使用 DatabaseClient 来与数据库通信。我尝试使用 2 种方法插入:

或者:

其中 SampleTable 是:

但是我同时使用这两种方法得到了同样的错误:

列“值”的类型为 my_enum,但表达式的类型为字符变化

你能帮我理解我做错了什么,或者让我参考一些工作示例吗?我感谢您的帮助!

0 投票
3 回答
1312 浏览

java - R2dbcDataAutoConfiguration 在创建 bean 'r2dbcDatabaseClient' bean 时与 AbstractR2dbcConfiguration 冲突

需要帮忙

我越来越

quote 在类路径资源 [org/springframework/boot/autoconfigure/data/r2dbc/R2dbcDataAutoConfiguration.class] 中定义的 bean 'r2dbcDatabaseClient' 无法注册。已在类路径资源 [com/paymentservice/configurations/PaymentR2dbcConfiguration.class] 中定义了具有该名称的 bean,并且禁用了覆盖。

我在用着

0 投票
0 回答
400 浏览

performance - spring r2dbc 的性能问题

问题:仅在前 1 秒内观察到缓慢,其余 59 秒的响应时间恒定,比最大响应时间好 90%。

Server Env 详细信息:带有 r2dbc 池的 spring boot webflux 部署在 ECS fargate 中并连接到 Postgres Aurora 集群。池设置 - maxSize,initialSize 为 200 使用 spring data r2dbc 并启用代理侦听器进行调试。

客户端:在同一 VPC 中的 AWS EC2 中配置了一个具有 200,250,300,500 个用户且斜坡时间为 50 秒的最小负载的加特林脚本。

设想

  1. ECS 服务器已启动。
  2. 等待 4 分钟。
  3. 使用邮递员对 5 个请求进行了空运行。
  4. 使用加特林触发负载
  5. 关闭弹性云服务器。
  6. 对不同数量的用户重复这些步骤。

该行为与不同的用户一致。总是前 1 分钟的响应最慢,响应时间最长。 后续运行无需重新启动服务器具有良好的性能,没有任何延迟。

总计|OK |KO|Cnt/s|最小值|第 50 个百分比|第 75 个百分比|第 95 个百分比|第 99 个百分比|最大值|平均值|标准偏差|
500 |500 |0 |9.804|94 |184 |397 |1785 |2652 | 2912 | 417 | 第556章

并且还在日志中观察到,对于具有最大响应时间的请求,记录的这两条即时行之间的时间差为 168 毫秒。-- 执行查询:BEGIN -- io.r2dbc.spi.Connection.beginTransaction 在 ConnectionFactory#create() 回调

任何建议如何解决/解决问题?

谢谢。

0 投票
0 回答
923 浏览

sql-server - 无法通过 r2dbc 打开到 SQL Server 的连接池

尝试获取 SQL Server 连接池时出现错误。

马文:

使用 ReactiveCrudRepository:

我可以通过 MssqlConnectionFactory 获得连接,但是当我们需要同时更新超过 1000 条记录时我们会发现错误,所以我认为连接池应该更适合我们。

这是测试代码:

这是我得到的错误:

我也尝试通过 DatabaseClient 对象而不是 ReactiveCRUDRepository 来做到这一点

我收到了更详细的错误消息:(在我看来,错误与依赖项有关)

0 投票
1 回答
216 浏览

java - 具有等待性的 ReaciveCrudRepository

编写测试,但不确定如何重写此代码:

反应一:

笔记:

第一个 findById() 签名是:可选的 findById(Long id)

第二个 findById() 签名是:Mono findById(ID id)

0 投票
0 回答
481 浏览

reactive-programming - 具有多个数据库(MySQL、MongoDB)的反应式全局事务

我将 MYSQL 与R2DBC(with spring-data-r2dbcand jasync-r2dbc-mysql) 和 Reactive Mongo 与spring-data-mongo-reactive. 我想设置包含这两个操作的事务。起初,我考虑过JTAChainedTransactionManager但据我所知,它们都实现了PlatformTransactionManager,而不是ReactiveTransactionManager

考虑到R2DBCTransactionManagerofspring-data-r2dbcReactiveMongoTransactionManagerof spring-data-mongodbimplements AbstractReactiveTransactionManager,有没有办法将它们集成到一个事务中?

0 投票
1 回答
663 浏览

mysql - 为什么 r2dbc-spi 的 connectTimeout 属性的类型是 java.time.Duration 以及如何在 URL 连接中使用它?

我正在为我的 r2dbc 连接使用带有 application.yml 文件的 URL 连接。我试图设置connectTimeout属性,但得到了这个错误:

我检查了 r2dbc-spi 配置了connectTimeoutas的类型java.time.Duration。而且r2dbc-mysql,我正在使用它。

我可以通过 URL 方式使用 connectTimeout 属性吗?我不知道如何自动将其从字符串传输到java.time.Duration.

到目前为止,我看到大多数类型的连接属性值是字符串、整数、布尔值。据我所知,JDBC 配置了connectTimeoutas单元,ms因此我可以轻松地connectTimeout使用 URL 进行设置。r2dbc-spi为它选择Duration类型有什么原因吗?