API gateway 是一个位于你的微服务前面的单一入口点。客户端调用 gateway,它将请求路由到正确的服务并处理横切关注点。
它做什么
- Routing — 将
/orders/*转发到 orders 服务。 - — 在边缘验证一次 token。
┌─────────────────────────────┐
Clients ─▶│ API Gateway │
│ auth · rate-limit · route │
└──┬──────────┬──────────┬────┘
▼ ▼ ▼
Orders Payments Users
# gateway routes
routes:
- path: /orders/**
service: orders-service # forward order traffic here
rateLimit: 100/min # throttle abusive clients
- path: /users/**
service: users-service
auth: required # gateway enforces auth before routing
Gateway 可能成为单点故障和瓶颈。使其高度可用,并将业务逻辑排除在外。
Gateway 使每个服务都无需重新实现身份验证、速率限制和 TLS,并为客户端提供一个稳定的 URL,而不是数十个。
没有它,客户端必须知道每个服务的地址并复制横切逻辑,这很快就会变成不可管理。