APIゲートウェイは、マイクロサービスの前に位置する単一のエントリーポイントです。クライアントがゲートウェイを呼び出し、ゲートウェイが要求を正しいサービスにルーティングし、横断的関心事を処理します。
なぜ重要なのか
- Routing —
/orders/*をordersサービスに転送します。
APIゲートウェイは、マイクロサービスの前に位置する単一のエントリーポイントです。クライアントがゲートウェイを呼び出し、ゲートウェイが要求を正しいサービスにルーティングし、横断的関心事を処理します。
/orders/*をordersサービスに転送します。 ┌─────────────────────────────┐
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
ゲートウェイは単一障害点となり、ボトルネックになる可能性があります。高可用性で実行し、ビジネスロジックは除外してください。
ゲートウェイにより、各サービスは認証、レート制限、およびTLSを再実装する必要がなくなり、クライアントは数十ではなく1つの安定したURLを取得できます。
それなしでは、クライアントはすべてのサービスのアドレスを知り、横断的ロジックを複製する必要があり、これはすぐに管理不可能になります。