Table of Contents

平台总览

KernLab.Traffic 是什么

全协议统一流量平台:一个进程、一个(或一组)数据端口上承载多协议客户端流量, 所有请求按统一编排的指令流处理,一切配置原生多租户。

三个支柱:

支柱 一句话 关键词
单端口多协议复用 HTTP/1.1·2·3、gRPC、WebSocket、TLS-SNI、TCP/UDP 裸流、SOCKS5/CONNECT 复用同一数据口,按连接探测自动分派 监听面 · 协议分派
指令流编排 请求处理=执行一条编排的指令流(三段·双相·并行组),内置步骤与插件步骤平等入链 编排链 · 步骤 · 槽位
原生多租户 租户是一等公民:配置面按租户隔离,数据面请求经租户解析归租户;密钥、配额、审计随租户走 命名空间 · 世代

全局图(生产集群形态)

节点 = 一台机器(或一个 Pod):guardian + worker 两进程

┌─ 节点 node-i ─────────────────────────────────────────────┐
│  traffic-guardian(守护进程):worker 保活/版本仓/滚动听令    │
│      ┆ guardian 控制口(默认仅本机)                         │
│  ┌──────────────────────────────────────────────────┐    │
│  │  worker(raft 成员身份在这里)                      │    │
│  │  N 数据口   → 客户端流量:监听→路由→编排链→上游      │    │
│  │  1 管理口   → /api/v1 全族+/ui/*+healthz          │    │
│  │  1 Tier 口  → raft 复制/心跳/快照(恒不与业务口复用) │    │
│  └──────────────────────────────────────────────────┘    │
└───────────────────────────────────────────────────────────┘

集群:CP 组=Voter×3/5(配置权威·发布编排)  DP 池=Learner×N(跑全部客户端流量)
      Standalone=单机一体(无 raft,本地卷)

与传统网关的两个本质区别

配置是编译产物。管理员提交的是声明式实体(route/cluster/orch…),节点内的编译器把 draft 编译成不可变的运行时模型;编译不过=发布拒绝,旧配置继续服务。发布的产物是 确定性的(同配置+同编译器版本 ⇒ 逐字节等价),可再生、可回滚、可在集群间按指针分发。

底层是 raft,不是控制面数据库。配置数据与系统信令的复制走 KernLab.Tier 的 raft——KV 存指针与元数据、 Blob 存数据体,raft 复制指针、按需物料化。这意味着没有外部的 Redis/Etcd/配置中心依赖, 集群本身就是配置的真源。

下一步