Tech Conference 2024
@dobachi
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Frontend │────▶│ API Gateway │────▶│ Services │
└─────────────┘ └─────────────┘ └─────────────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Auth │ │ Database │
└─────────────┘ └─────────────┘
// API Gateway実装
export class ApiGateway {
private services: Map<string, ServiceClient>;
async route(request: Request): Promise<Response> {
const service = this.getService(request.path);
return await service.forward(request);
}
private getService(path: string): ServiceClient {
const serviceName = path.split('/')[1];
return this.services.get(serviceName);
}
}
メトリクス | 改善前 | 改善後 |
---|---|---|
レスポンス時間 | 850ms | 120ms |
スループット | 1,000 req/s | 15,000 req/s |
可用性 | 99.0% | 99.99% |