问题标签 [r2dbc-postgresql]
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.
spring-data - 枚举类型的spring R2DBC查询
我的 PostgreSQL 包含一个像
在 Spring Boot 应用程序中,它表示为MyType.class enum
我正在尝试使用DatabasClient
作为一个错误,我得到:
将类型转换为my_type
不起作用(使用 CAST 和 ::)
我已经注册了一个适用的特定编解码器MyType.class
- 无条件查询所有适用于相关@ReadingConverter
java - 如何连接到 postgres 并使用 r2dbc 执行查询
我正在尝试编写一个简单的函数来连接postgres
并执行一个 select 语句。
上面的代码没有打印任何东西。也没有错误。我可以使用相同的凭据连接到数据库。从数据库流式传输数据的代码中缺少什么?
java - 如何在 r2dbc 中建立数据库连接?
如何在 r2dbc Spring boot 项目中建立 PostgreSQL 数据库连接?
我尝试了以下配置,它连接到数据库,但没有返回任何值
应用程序属性
模型
存储库
休息控制器:
它在控制台中打印输出,但在 JSON 中,我只得到空括号{}
正确的配置方法是什么?还需要什么其他配置吗?
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 秒的最小负载的加特林脚本。
设想
- ECS 服务器已启动。
- 等待 4 分钟。
- 使用邮递员对 5 个请求进行了空运行。
- 使用加特林触发负载
- 关闭弹性云服务器。
- 对不同数量的用户重复这些步骤。
该行为与不同的用户一致。总是前 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() 回调
任何建议如何解决/解决问题?
谢谢。
postgresql - r2dbc postgres 驱动程序 - 如何从 PooledConnection 中提取 PostgresqlConnection
嗨,我的 Spring Boot 应用程序使用属性文件自动配置了 r2dbc 连接池:
现在我需要获取一个 PostgresqlConnection 实例,我这样做:
但是因为这是一个池配置,所以我收到了 ClassCastException 和以下包含所需 PostgresqlConnection 的 PooledConnection 对象:
PooledConnection[PostgresqlConnection{client=io.r2dbc.postgresql.client.ReactorNettyClient@14c93774, codecs=io.r2dbc.postgresql.codec.DefaultCodecs@62a68bcb}]
我需要访问 PostgresqlConnection 并使用它的原生功能,比如通知:
问题是如何从 connectionFactory 正确获取 PostgresqlConnection 实例?任何帮助将不胜感激。
spring-data-r2dbc - 间隔任务导致 R2DBC 中的空闲连接耗尽
我正在使用 reactor java 使用 r2dbc 对 Postgres 运行定期任务,如下所示;
大约 5 分钟后,它停止处理作业,当我检查 postgres 连接都空闲时:
如何适当地使用 r2dbc 和 databaseClient 定期从表中获取数据而不会导致此异常?
spring - Spring R2DBC 使用 postgres 初始化数据库的正确方法
我有以下代码:
和:
我收到以下错误:
更早的错误:
如果我修改我的代码说:
然后我不再收到有关现有项目关系的错误,但是,似乎交易被完全取消了?
我得到以下输出:
所以我的问题是
这样做的正确方法是什么?
为什么我的 CommandLineRunner 代码似乎执行了两次?该表在运行代码后不会持续存在,因此似乎必须执行两次才能获得有关该表存在的第一个错误。
谢谢你。
java - R2DBC - 它在现实中是如何工作的?
我已经开始学习 Reactive 范式,所以我对这个主题很陌生。我创建了一个示例应用程序,它使用 Spring R2DBC 连接到 PostgreSQL DB。
我创建了一个 Rest Controller 用于在 DB 中获取和保存数据,以更好地理解一个概念。
我预计会遇到以下情况:
- 我正在从响应式存储库类运行 findById 查询以查找 ID,该 ID 在 DB 中尚不存在。我订阅了返回的 Mono 对象
- 我正在保存具有在 (1) 中查询的 id 的实体
- 来自 (1) 的查询不断监听 DB 中的变化并立即找到添加的实体
不幸的是,它不能以这种方式工作。基本上第 (3) 点永远不会发生,我需要从 (1) 手动触发查询以再次访问数据库。
我的问题是 - 我做错了什么或错误地理解了反应式数据库概念?
我觉得,这里需要一些解释。我非常感谢您在这个问题上的帮助。