Apache Dubbo Pixiu打造微服务生态的轻量级 API 网关

一、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 值得你立刻试一试。

参考链接 & 推荐阅读

相关推荐
骑着蜗牛撵大象3271 小时前
Spring Boot 4.1 + Spring AI 2.0:RAG 供文、图谱供关系、MCP 供工具的 Java Agent 平台
java·spring boot·spring·微服务·知识图谱·rag·mcp
code_slave(码畜)2 小时前
微服务架构落地:慢 SQL 治理与连接池调优 —— 守住数据库的最后一道防线
数据库·spring boot·sql·spring cloud·微服务·架构
ai_coder_ai2 小时前
在自动化脚本中调用大语言模型
语言模型·自动化·dubbo
源图客3 小时前
Apache Flink 2.3.0(最新版本)
大数据·flink·apache
南楼旧雨19 小时前
深度解析宝塔插件开发:从底层逻辑到实战定制(附独立开发案例)
dubbo
镜子AI1 天前
镜子AI 内容方法论:GEO 到底怎么起作用,以及一份四步操作清单
人工智能·dubbo
微三云 - 廖会灵 (私域系统开发)2 天前
企业级 SaaS 系统架构设计:单体、微服务还是模块化单体?技术选型实战
微服务·架构·系统架构
shuair2 天前
Spring Cloud 微服务脚手架:Simple Cloud 系统架构设计
spring cloud·微服务·系统架构
CodeGL2 天前
微服务框架——go-zero
微服务·架构·golang
草莓熊Lotso2 天前
【C++ 基于微服务的即时通讯系统】网关基建:cpp-httplib 与 WebSocketpp 从入门到实战
linux·开发语言·数据库·c++·redis·微服务·云原生