Skip to main content
gRPC

Client-side Load Balancing

RequestValidateHard

Description

Configure client-side load balancing across multiple gRPC servers.

Test Scenario

// Example: DNS-based load balancing
const client = new UserServiceClient(
  "dns:///users.service:50051", // DNS resolution
  grpc.credentials.createInsecure(),
  {
    "grpc.lb_policy_name": "round_robin",
    "grpc.dns_min_time_between_resolutions_ms": 10000
  }
);

// Client automatically balances across resolved IPs

Testing Tips

  • •gRPC supports various LB policies
  • •round_robin, pick_first, grpclb
  • •Can use service discovery (DNS, etcd, etc.)
// Playwright API Testing - gRPC (via REST gateway)
import { test, expect } from '@playwright/test';
test('gRPC unary call via gateway', async ({ request }) => {
const response = await request.post('/api/grpc/UserService/GetUser', {
data: { id: '1' }
});
expect(response.ok()).toBeTruthy();
const data = await response.json();
expect(data.user).toBeDefined();
});

Challenge ID: grpc-load-balancing

2 frameworks available