Skip to content

Service Discovery

go-zero supports pluggable service discovery backends. etcd is the most common option.

etc/order-rpc.yaml
Name: order.rpc
ListenOn: 0.0.0.0:8080
Etcd:
Hosts: [127.0.0.1:2379]
Key: order.rpc

No code changes needed — go-zero registers at startup automatically.

etc/api.yaml
OrderRpc:
Etcd:
Hosts: [127.0.0.1:2379]
Key: order.rpc
orderClient := order.NewOrderClient(zrpc.MustNewClient(c.OrderRpc).Conn())
OrderRpc:
Endpoints: [order-rpc-svc.default:8080]
OrderRpc:
Endpoints: [127.0.0.1:8080]

go-zero RPC servers implement the gRPC health check protocol automatically.

livenessProbe:
exec:
command: ["/bin/grpc_health_probe", "-addr=:8080"]
initialDelaySeconds: 5