Endpoints
Frontends de Postgres que se suspenden al estar inactivos — tipos, ciclo de vida y semántica de despertar.
Un endpoint es el proceso de Postgres que acepta conexiones de clientes. Los endpoints son efímeros: se suspenden cuando están inactivos, despiertan al primer paquete, y se ejecutan sobre la capa de almacenamiento separada del proyecto. Pague solo por los segundos que el cómputo realmente está ejecutándose.
Tipos
| Tipo | ¿Escribe? | Cuándo usarlo |
|---|---|---|
rw | Sí | El predeterminado. Tráfico de app, migraciones, cualquier cosa que mute. Un endpoint rw por rama es suficiente para cargas de trabajo típicas. |
ro | No | Réplicas de lectura. Múltiples endpoints ro pueden adjuntarse a la misma rama y compartir almacenamiento; sus cachés locales se mantienen independientes. Úselo para aislar el tráfico de analítica del tráfico de app. |
Ambos tipos se adjuntan a exactamente una rama. Un endpoint no puede moverse a una rama diferente; cree un nuevo endpoint en la rama de destino en su lugar.
Suspensión al estar inactivo
Los endpoints se suspenden tras una ventana configurable sin actividad de
cliente. El predeterminado es 300 segundos (5 minutos). Establezca
suspend_after_seconds en el momento de la creación para anularlo; la
nueva ventana surte efecto en el siguiente periodo de inactividad del
endpoint.
Mientras está suspendido:
- El pod de cómputo desaparece. Sin CPU, sin memoria facturada.
- El almacenamiento no se ve afectado — sus datos son duraderos en el pageserver.
- El id del endpoint y la cadena de conexión siguen siendo válidos.
Despertar
Enviar un paquete a un endpoint suspendido lo despierta. La latencia de arranque en frío es normalmente de 300–500 ms una vez que el clúster tiene la caché del pageserver caliente; el primer despertar tras una larga inactividad (o tras un proyecto recién creado) puede tardar 10–30 segundos mientras la caché de páginas del pageserver se calienta. Los controladores estándar de Postgres no ven esto como un tiempo de espera agotado en configuraciones típicas — consulte Solución de problemas si lo ve.
Los despertares rutinarios son rápidos porque la plataforma mantiene un pool de cómputo precalentado por delante de la demanda: un despertar normalmente se adjunta a cómputo ya en ejecución en vez de arrancarlo desde cero. Usted no gestiona ni paga por el pool — solo afecta a la rapidez con la que su endpoint vuelve.
Máquina de estados
Un endpoint transiciona por:
Pending → Starting → Running → Stopping → Stopped → (Failed)- Pending — el plano de control ha aceptado la solicitud de creación y está programando el pod de cómputo. Si ve un endpoint atascado aquí durante más de unos segundos, consulte Solución de problemas.
- Starting — el pod de cómputo está activo; Postgres se está inicializando y reproduciendo el WAL hasta el HEAD de la rama.
- Running — aceptando conexiones de clientes.
- Stopping — ventana de inactividad transcurrida; drenando conexiones y volcando el estado local.
- Stopped — suspendido. Esperando el siguiente paquete para despertar.
- Failed — error terminal. La tarjeta del endpoint expone la razón; raro, pero ocurre cuando la programación falla o la imagen de cómputo no puede arrancar.
URI de conexión
El formato de cable está documentado en Cadenas de conexión:
postgresql://<role>:<pwd>@<endpoint_id>.kisenon.com:5432/<database>?sslmode=requireEl nombre de host se deriva del id del endpoint, no del id del proyecto — cada endpoint termina TLS de forma independiente. TLS es obligatorio.
Crear
keon endpoints create --branch <branch-id> --type rwBanderas opcionales:
--suspend-after-seconds <n>para anular la ventana de suspensión predeterminada.--type ropara un endpoint de solo lectura.
La CLI devuelve el id del endpoint y la cadena de conexión. El endpoint
está Running y listo para aceptar conexiones a los pocos segundos de que
la llamada retorne.
Eliminar
keon endpoints delete <endpoint-id>Las conexiones de cliente abiertas se descartan. El id del endpoint se retira y su nombre de host DNS deja de resolverse. La rama y sus datos no se ven afectados.
Relacionado
- Ramas — a lo que se adjunta un endpoint.
- Cadenas de conexión — detalle del formato de cable.
- Solución de problemas — estados atascados, tiempos de espera de arranque en frío y demás.