You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Npgsql连接PostgreSQL集群读写与只读节点?

Npgsql连接Stackres集群的连接字符串配置及连接池混用问题

一、连接字符串的正确性

你给出的连接字符串格式是正确的:

"Host=db-read-write-server, db-read-only-server;Username=test;Password=test;Target Session Attributes=prefer-standby"
  • Host参数通过逗号分隔多个节点地址,Npgsql会自动识别所有提供的节点
  • Target Session Attributes=prefer-standby表示优先选择只读节点建立连接,当所有只读节点不可用时,才会 fallback 到主节点,完全适配Stackres集群主从架构的只读负载需求
  • 节点的排列顺序不影响最终的节点选择逻辑,Npgsql会根据会话属性筛选符合条件的节点

二、负载分发与连接池的兼容性

负载分发配置和连接池可以完全混合使用,你给出的示例连接字符串是合法且有效的:

"Host=db-read-write-server, db-read-only-server;Username=test;Password=test;Target Session Attributes=prefer-standby;Pooling=true;Maximum Pool Size=4"
  • 连接池(Pooling=true)会正常维护数据库连接的复用,避免频繁创建销毁连接的开销
  • Npgsql在从连接池获取连接时,依然会遵循Target Session Attributes的规则,选择匹配的节点
  • 注意根据WebAPI的并发量合理调整Maximum Pool Size,过小可能导致连接等待,过大则可能占用过多数据库资源

内容的提问来源于stack exchange,提问作者Waldo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 23:32:32