nacos
Hertz 提供的服务注册与发现 nacos 拓展。
目前在 Hertz 的开源版本支持的服务发现拓展都存放在 registry 中,欢迎大家参与项目贡献与维护。
到现在为止,支持的服务发现拓展有
使用服务发现时会提供一些可选配置给用户。
配置 | 描述 |
---|---|
WithSD | 配合服务发现使用,传递 true 时,本次请求使用服务发现。 |
WithTag | 配合服务发现使用,设置 Tag 信息。 |
WithCustomizedAddrs | 自定义目标实例地址。 |
WithLoadBalanceOptions | 配置负载均衡选项。 |
提供 WithSD
配置项,传入参数为 true 时,本次请求使用服务发现。使用服务发现请求时必须使用 WithSD
配置项。
函数签名:
func WithSD(b bool) RequestOption
示例代码:
status, body, err := cli.Get(context.Background(), nil, "http://hertz.test.demo/ping", config.WithSD(true))
提供 WithTag
配置项,使用此配置用于设置 Tag 信息。
函数签名:
func WithTag(k, v string) RequestOption
示例代码:
status, body, err := cli.Get(context.Background(), nil, "http://hertz.test.demo/ping", config.WithTag("foo", "var"))
WithCustomizedAddrs
配置项指定服务发现时的目标实例地址。它将会覆盖来自 Resolver
的结果。Resolver
是服务发现中心,用于服务发现。
函数签名:
func WithCustomizedAddrs(addrs ...string) ServiceDiscoveryOption
示例代码:
cli.Use(sd.Discovery(r, sd.WithCustomizedAddrs("127.0.0.1:8088")))
WithLoadBalanceOptions
为客户端配置负载均衡实现和负载均衡参数。可以通过传递loadbalance.Options
配置负载均衡参数,或者通过传递loadbalance.DefaultOpts
使用默认负载均衡参数。若不使用此配置项,则客户端默认使用 WeightedRandom 负载均衡实现并且使用默认负载均衡参数。
可以设置的负载均衡参数:
负载均衡参数名 | 负载均衡参数默认值 | 描述 |
---|---|---|
RefreshInterval | 5秒 | 刷新服务端信息间隔 |
ExpireInterval | 15秒 | 服务端信息过期间隔 |
函数签名:
func WithLoadBalanceOptions(lb loadbalance.Loadbalancer, options loadbalance.Options) ServiceDiscoveryOption
示例代码:
cli.Use(sd.Discovery(r, sd.WithLoadBalanceOptions(loadbalance.NewWeightedBalancer(), loadbalance.Options{
RefreshInterval: 5 * time.Second,
ExpireInterval: 15 * time.Second,
})))
自定义负载均衡扩展详见负载均衡扩展。
Hertz 提供的服务注册与发现 nacos 拓展。
Hertz 提供的服务注册与发现 consul 拓展。
Hertz 提供的服务注册与发现 etcd 拓展。
Hertz 提供的服务注册与发现 eureka 拓展。
Hertz 提供的服务注册与发现 polaris 拓展。
Hertz 提供的服务注册与发现 servicecomb 拓展。
Hertz 提供的服务注册与发现 zookeeper 拓展。
Hertz 提供的服务注册与发现 redis 拓展。