feat: implement horizontal scaling optimizations for authz service

- Add /health and /ready endpoints for load balancer health checks
- Replace in-memory JWT token cache with Redis for multi-replica support
- Reduce DB connection pool from 100 to 25 connections per replica
- Add distributed rate limiting (100 req/min + 20 burst) using Redis
- Implement circuit breakers for DB and Redis to prevent cascading failures

This enables the service to scale horizontally with multiple replicas
behind a load balancer without exhausting database connections or
maintaining separate token caches per instance.
This commit is contained in:
2025-12-16 10:03:18 +08:00
parent ee8079e65c
commit 0d8f5b9600
9 changed files with 400 additions and 67 deletions
+7
View File
@@ -0,0 +1,7 @@
package models
// HealthResponse represents the health check response
type HealthResponse struct {
Status string `json:"status"`
Services map[string]string `json:"services,omitempty"`
}
+7
View File
@@ -0,0 +1,7 @@
package models
// RateLimitConfig holds rate limiting configuration
type RateLimitConfig struct {
RequestsPerMinute int
BurstSize int
}