Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Community project: strata-router, a multi-node router for Strata / 社区项目:Strata 多节点路由入口

Cerrado Apto para principiantes
#772 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 3 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
65/100
Tipo de issue
Documentación
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python

Línea de trabajo

Lee README.md (y todas las páginas de docs/ que enumeren proyectos relacionados o de la comunidad) para encontrar dónde se mencionan herramientas externas; el cambio consiste en añadir un enlace a github.com/konijiwa110/strata-router con una descripción de una línea. Ten en cuenta que la issue también invita a que un maintainer decida si la mención es deseada en absoluto, así que confirma que la sección existe antes de editar. Se considera terminado cuando el enlace aparece en la sección correspondiente de README/docs.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hi, thanks for Strata! I run it on a couple of machines and wrote a small router in front of them. Sharing it in case it is useful to others:

https://github.com/konijiwa110/strata-router (MIT)

What it does

Clients point at one endpoint and requests are spread across several Strata nodes. The API is the same as Strata's (/v1/messages, /v1/chat/completions, /v1/responses, /v1/models, ...); requests are passed through to the nodes unchanged.

Routing
  • Sticky sessions: a session is identified by its system prompt plus first user message, and goes back to the node that already has its KV cache.
  • Moving when busy: if that node is busy, the router estimates how many tokens an idle node would have to re-read (not counting the system prompt and tools the idle node already cached). It moves the session only if that is under a threshold, otherwise it waits for the original node.
  • Strategies: even, least load, random, weighted.
  • Node modes: enable / drain / disable; a request that fails to connect is retried on another node.
Console
  • Node hardware metrics and live progress, including prompt-read progress from /metrics
  • Request log with the routing decision for each request
  • Multiple access keys with usage stats
  • Chinese / English UI; the backend uses only the Python standard library

If you think it is worth a mention in the README or docs, that would be great; feel free to close this otherwise.


中文

感谢 Strata!我在几台机器上跑 Strata,前面加了一个路由入口,开源出来,也许对别人有用:

**https://github.com/konijiwa110/strata-router**(MIT)

功能

客户端只连一个入口,请求会分到多台 Strata 节点。接口与 Strata 相同(/v1/messages、/v1/chat/completions、/v1/responses、/v1/models 等),请求原样转发给节点。

路由
  • 会话粘性:以系统提示加第一条用户消息识别会话,同一会话回到已有其 KV 缓存的节点。
  • 忙时换机:原节点忙时,估算换到空闲节点需要重读多少 token(不计该节点已缓存的系统提示与工具),低于阈值才换,否则等原节点。
  • 分配策略:平均分配、最少负载、随机、按权重。
  • 节点状态:启用 / 排空 / 停用;连接失败的请求自动换到其他节点重试。
控制台
  • 节点硬件指标与实时进度(含从 /metrics 读取的提示读取进度)
  • 请求记录,含每个请求的路由决策
  • 多个访问密钥及用量统计
  • 中文 / 英文界面;后端只用 Python 标准库

如果觉得值得在 README 或文档里提一下就太好了;不合适的话直接关闭即可。

Lenguaje dominante
C++
Estrellas
11.6k
Forks
1k
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Niko1221/Strata

Todos los issues de Niko1221/Strata

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.