AgentSkillsCN

rpc

RPC 接口设计、容错能力与追踪机制指南。

SKILL.md
--- frontmatter
name: rpc
description: Guidelines for RPC interface design, resilience, and tracing.

RPC

Design

  • Context: Every RPC entry point or client call MUST accept context.Context as the first argument.
  • Tracing: All RPCs MUST be instrumented with OpenTelemetry.
    • Server: Extract context, start span.
    • Client: Inject context, start span.

Resilience

Timeouts

Set a deadline on every outgoing request.

go
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
ScenarioTimeout
Inter-service (same datacenter)2s
External API5-10s
User-facing1s
Background jobs30-60s

Retries

Use exponential backoff with jitter for transient failures.

  • gRPC: Use grpc_retry middleware.
  • HTTP: Use go-retryablehttp.