一、Pixiu 简介:Dubbo 官方的轻量级 API 网关

Apache Dubbo Pixiu 是一个由 Golang 编写、专为 Dubbo 微服务生态设计的轻量网关:
- ✅ 支持 HTTP/gRPC/Dubbo 协议互通
- ✅ 内建服务治理能力:限流、熔断、路由、认证
- ✅ 插件式架构,可灵活扩展各种过滤器
- ✅ 可独立部署,也可作为 Sidecar 实现服务网格流控
Pixiu 不仅是"HTTP 入口 + 转发工具",更是 Dubbo 世界里的协议适配器 + 流量治理中枢。
二、为什么是 Pixiu,而不是 Nginx/Kong?
功能对比项 | Nginx | Kong | Pixiu |
---|---|---|---|
支持 Dubbo 协议 | ❌ | ⚠️ 可扩展 | ✅ 原生支持 |
协议转换 | ❌ | ✅(部分) | ✅ HTTP⇋RPC |
插件机制 | 🌕 Lua 模块 | 🌕 丰富 | 🌕 Golang 插件 |
服务发现 | ❌ | ✅ | ✅ Nacos/ZK |
配置动态热更 | ❌ | ✅ | ✅ YAML/中心 |
微服务治理 | ❌ | ✅ | ✅ 限流/熔断/标签路由 |
Pixiu 的定位很明确:
🔥 专注 Dubbo、专注微服务、专注高性能,轻但够用,能打还好扩展。
三、Pixiu 架构解读:组件一图看懂

核心模块:
- Listener:接收 HTTP/gRPC 请求
- Router:基于 path/method/header 做智能路由
- Protocol Adapter:将请求转换为 RPC 调用(支持 Triple)
- Invoker:调用 Dubbo 后端服务(Go/Java/其他语言)
- Filter 插件链:权限认证、日志审计、限流、追踪都在这儿
- Service Discovery:自动对接注册中心(Nacos/ZK)
四、实际场景怎么用?
场景一:统一 Dubbo 服务接入(HTTP ⇋ RPC)
bash
curl http://localhost:8888/api/v1/user/get?id=123
# Pixiu 自动转为 RPC 请求 -> UserService.GetUser(id=123)
场景二:REST 接入 Java Dubbo 服务(跨语言)
- 前端调用
/user/login
- Pixiu 将请求转为 Triple 协议
- Java 后端用 Dubbo 实现逻辑处理
Pixiu Sidecar 拦截出入流量,实现可编程治理,无需 Istio。
五、Pixiu 配置详解(YAML)
yaml
apiVersion: dubbo.apache.org/v1alpha1
kind: Route
metadata:
name: login-route
spec:
path: /login
method: POST
service: com.demo.UserService
rpcMethod: Login
protocol: triple
可以按 header
、method
、标签
精细路由,也支持灰度发布:
yaml
filters:
- name: ratelimit
config:
rate: 50
burst: 100
- name: jwt-auth
config:
secret: my-jwt-secret
六、插件机制:Filter 架构 & 示例
Pixiu 使用类似网关中间件的 Filter 架构,你可以在请求前、请求后插入逻辑。
常用内置插件:
jwt-auth
:Token 认证ratelimit
:基于 IP、Path 限流prometheus
:暴露/metrics
mock
:测试环境模拟返回- 自定义插件:Golang 编写,支持热加载
七、与服务注册中心联动
Pixiu 可读取服务注册中心的服务列表,动态感知 Dubbo 服务上下线:
yaml
registry:
protocol: nacos
address: 127.0.0.1:8848
同时支持:Nacos、Zookeeper、Consul、Kubernetes CRD。
八、在 Mesh 架构中的位置图

部署 Pixiu 为每个服务的 Sidecar,实现流量透明转发、隔离和治理:
九、性能与扩展性亮点
能力 | 表现 |
---|---|
吞吐量 | 支持数千 QPS 请求稳定转发 |
延迟 | 请求转 RPC 平均延迟 < 2ms |
启动速度 | 毫秒级,秒级热重载 |
插件扩展 | 可插拔 Golang 插件系统 |
资源消耗 | 单实例 <100MB,支持容器化部署 |
十、未来规划与发展方向
来自官方路线图:
- ✅ 插件热加载 + 插件市场
- ✅ Dubbo3 协议全面支持 + 流控增强
- ✅ 图形化控制台(Web UI)
- ✅ 路由策略动态下发(配置中心接入)
- ✅ 多语言客户端集成(Pixiu SDK)
十一、总结
Pixiu 是 Dubbo 世界里的边关将军,既懂 HTTP、又通 RPC,既轻量、又可扩展:
- 是微服务的网关统一入口
- 是 Dubbo 服务治理的操作面板
- 是构建服务网格的重要代理器
- 是云原生部署中的贴心助手
如果你:
- 已在使用 Dubbo(Go / Java)
- 正想从 Nginx 转型治理网关
- 想搭建轻量 Mesh、流量可编排系统
Pixiu 值得你立刻试一试。