fix(consul): Fix health checks for gRPC services in Docker
- Add gRPC health check support to Consul registry - Services are gRPC-only, not HTTP - Consul was trying HTTP health checks which failed - Now uses gRPC health checks via grpc.health.v1.Health service - Update HealthCheckConfig to support both HTTP and gRPC - Add GRPC field for gRPC service name - Add UseGRPC flag to choose health check type - Default to gRPC for services (use_grpc: true in config) - Fix service address registration in Docker - Services now register with Docker service name (e.g., auth-service) - Allows Consul to reach services via Docker network DNS - Falls back to localhost for local development - Update default.yaml to enable gRPC health checks - Set use_grpc: true - Set grpc: grpc.health.v1.Health This fixes services being deregistered from Consul due to failed HTTP health checks. Services will now pass gRPC health checks.
This commit is contained in:
@@ -183,7 +183,13 @@ func registerLifecycle(
|
||||
serviceID := fmt.Sprintf("authz-service-%d", time.Now().Unix())
|
||||
host := cfg.GetString("services.authz.host")
|
||||
if host == "" {
|
||||
host = "localhost"
|
||||
// In Docker, use service name for Consul to reach the service
|
||||
// For local development, use localhost
|
||||
if os.Getenv("ENVIRONMENT") == "production" || os.Getenv("DOCKER") == "true" {
|
||||
host = "authz-service" // Docker service name
|
||||
} else {
|
||||
host = "localhost"
|
||||
}
|
||||
}
|
||||
port := grpcServer.Port()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user