Files
go-trustlog/internal/grpcclient/config.go

31 lines
768 B
Go
Raw Permalink Normal View History

package grpcclient
import (
"errors"
"google.golang.org/grpc"
)
// Config 客户端配置.
type Config struct {
// ServerAddrs gRPC服务器地址列表格式: "host:port"
// 支持多个地址,客户端将使用轮询负载均衡
ServerAddrs []string
// ServerAddr 单个服务器地址向后兼容如果设置了此字段将忽略ServerAddrs
ServerAddr string
// DialOptions 额外的gRPC拨号选项
DialOptions []grpc.DialOption
}
// GetAddrs 获取服务器地址列表.
func (c *Config) GetAddrs() ([]string, error) {
switch {
case len(c.ServerAddrs) > 0:
return c.ServerAddrs, nil
case c.ServerAddr != "":
return []string{c.ServerAddr}, nil
default:
return nil, errors.New("at least one server address is required")
}
}