kisenon

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
rwEl predeterminado. Tráfico de app, migraciones, cualquier cosa que mute. Un endpoint rw por rama es suficiente para cargas de trabajo típicas.
roNoRé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=require

El 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 rw

Banderas opcionales:

  • --suspend-after-seconds <n> para anular la ventana de suspensión predeterminada.
  • --type ro para 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