- 将所有trustlog-sdk文件移动到trustlog/go-trustlog/目录 - 更新README中所有import路径从trustlog-sdk改为go-trustlog - 更新cookiecutter配置文件中的项目名称 - 更新根目录.lefthook.yml以引用新位置的配置 - 添加go.sum文件到版本控制 - 删除过时的示例文件 这次重构与trustlog-server保持一致的目录结构, 为未来支持多语言SDK(Python、Java等)预留空间。
31 lines
768 B
Go
31 lines
768 B
Go
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")
|
||
}
|
||
}
|