Service Configuration

Service Configuration

Overview

This paper describes how to use the go-Zero framework for gRPC client development.

Configuration

type RpcClientConf struct {
    Etcd          discov.EtcdConf `json:",optional,inherit"`
    Endpoints     []string        `json:",optional"`
    Target        string          `json:",optional"`
    App           string          `json:",optional"`
    Token         string          `json:",optional"`
    NonBlock      bool            `json:",optional"`
    Timeout       int64           `json:",default=2000"`
    KeepaliveTime time.Duration   `json:",default=20s"`
    Middlewares   ClientMiddlewaresConf
}

type EtcdConf struct {
    Hosts              []string
    Key                string
    ID                 int64  `json:",optional"`
    User               string `json:",optional"`
    Pass               string `json:",optional"`
    CertFile           string `json:",optional"`
    CertKeyFile        string `json:",optional=CertFile"`
    CACertFile         string `json:",optional=CertFile"`
    InsecureSkipVerify bool   `json:",optional"`
}

type ServerMiddlewaresConf struct {
    Trace      bool `json:",default=true"`
    Recover    bool `json:",default=true"`
    Stat       bool `json:",default=true"`
    Prometheus bool `json:",default=true"`
    Breaker    bool `json:",default=true"`
}

RpcClientConf

Name DataType Meaning Default value Required?
Etcd EtcdConf Service finds configuration, when using etcd for service discovery None NO
Endpoints String Type Array RPC Server address list, used for direct link, configured when required for a rpc server cluster None NO
Target string Domain URL solved, please refer to <https://github.com/grpc/grpc/blob/master/doc/naming.md> None NO
App string rpc authenticated app name, only configured when rpserver opens authentication None NO
Token string rpc authenticated token, only configured when rpserver opens authentication None NO
NonBlock bool Whether to block mode, when true does not block rpc links false NO
Timeout int64 Timeout time 2000ms NO
KeepaliveTime Time.Duration Keepalive Time 20s NO
Middlewares ClientMiddlewaresConf Enable Middleware None NO

EtcdConf

EtcdConf config service discovery when using etcd for service discovery.

Name DataType Meaning Default value Required?
Hosts String Type Array etcd cluster address None YES
Key string Service discovery key None YES
ID int64 etcd tenant id None NO
User string etcd username None NO
Pass string etcd password None NO
CertFile string etcd certificate file CertFile NO
CertKeyFile string etcd certificate private key file None NO
CACertFile string etcd certificate file CertFile NO
InsecureSkipVerify bool Whether or not to skip certificate verification None NO

ServerMiddlewaresConf

ServerMidlewaresConf is configured as an intermediary, when control is required.

Name DataType Meaning Default value Required?
Trace bool Enable link tracking true NO
Recover bool Whether to enable an exception recovery true NO
Stat bool Enable stats true NO
Prometheus bool Whether prometheus are enabled true NO
Breaker bool Whether to turn on smelting true NO