连接字符串
Kisenon 端点的格式、TLS、角色和密码规则。
每个 Kisenon 端点都暴露一个标准的 postgresql:// URI:
postgresql://<role>:<pwd>@<endpoint_id>.<region>.kisenon.com:5432/<database>?sslmode=require组成部分
| 字段 | 含义 |
|---|---|
<role> | 在分支上创建的 Postgres 角色。端点卡片会显示自动创建的 app 角色;你可以通过 SQL 创建更多。 |
<pwd> | 该角色的密码。在创建时显示一次;通过 SQL 轮换。 |
<endpoint_id> | 每个端点稳定不变,例如 ep_4f3c12a9b8e6。通过 SNI 路由。 |
<region> | 你项目的区域标识 —— 目前为 usc1(美国中部,GCP)。派生得出,非硬编码;参见 区域。 |
kisenon.com | 数据平面顶点。通过 TLS SNI 路由到你的端点。 |
5432 | 标准 Postgres 端口。 |
<database> | 默认为 main;使用 CREATE DATABASE 创建更多。 |
?sslmode=require | TLS 是强制的。verify-full 同样可用且推荐使用。 |
TLS
端点使用面向 *.<region>.kisenon.com 的 Let's Encrypt 证书终止 TLS。
标准 Postgres 客户端会针对系统信任库进行验证;无需自定义 CA。
对于生产代码,推荐使用 sslmode=verify-full。它会检查
证书链以及主机名。
代理如何路由到你的端点
数据平面代理按顺序依据两个信号来判定一个连接属于哪个端点:
neon.endpoint_id启动选项,如果客户端发送了它。- 作为回退的 TLS SNI 主机名(
<endpoint_id>.<region>.kisenon.com)。
用户名字段不用于路由 —— 可选用你分支所定义的任意角色。 由控制台生成的连接字符串会在主机名中携带端点, 因此它们会自动通过 SNI 路由,你无需设置任何额外内容。
只有当你的客户端无法在 SNI 中出示端点时才显式传入
neon.endpoint_id —— 例如一个不会发送 Server
Name 扩展的 TLS 栈,或一个重写主机的隧道。大多数 Postgres
驱动默认发送 SNI,所以这很少需要。
连接池
连接池已GA 并默认开启 —— 每个端点在其直连主机之外 都有一个池化主机(自 2026-07-18 起)。
池化主机是 <endpoint_id>-pooler.<region>.kisenon.com —— 同一个
端点,只是在主机标签中插入了 -pooler —— 位于端口 5432
并使用 sslmode=require:
postgresql://<role>:<pwd>@<endpoint_id>-pooler.<region>.kisenon.com:5432/<database>?sslmode=require控制台的 Connect 面板和 API 响应都会在直连的 connection_uri
之外交给你一个 connection_uri_pooled。
池化器以 事务池化 模式运行(每个计算一个 PgBouncer 边车)。 这非常适合大量短生命周期的连接 —— 无服务器函数、 边缘运行时、智能体 —— 其中每个事务可以借用一个 服务器连接并立即归还。
当你需要以下内容时,改用直连(未池化的 :5432)连接:
LISTEN/NOTIFY。- 会话级咨询锁。
- 必须超越单个事务生命周期的会话
SET/ GUC。 - 服务器端预处理语句。
直连的 connection_uri 始终可用且永不移除,因此
这些功能会与以前完全一样地继续工作。在直连之前放置一个
客户端侧连接池(PgBouncer 或你驱动内置的连接池)同样有效。
在创建时通过 pooler_enabled: false 字段,或通过
PATCH /v1/endpoints/{endpointId},可让一个端点退出池化。默认值为
true。
多个端点
你可以在同一个分支上派生多个端点。它们共享存储 但拥有独立的连接限制和缓存。用它们来隔离:
- 应用流量与分析流量。
- 只读副本(如果你不写入,分支上的任何端点本质上都是一个只读 副本)。
- 开发分支上的按环境端点。