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 IPsTesting 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