Closed zhuxiujia closed 2 years ago
是多个客户端,每个客户端会从列表中随机选择一个服务器,假设你有 M 个服务器,N 个客户端,这样对于 N 个客户端来说,就是平均分配到 M 个服务器上的。对于每个客户端来说,所连接的服务器是固定的,这样你的客户端和服务器之间才可以保持会话。
如果我是 对接的consul服务发现,是1个客户端N个服务器,正确的负载均衡策略应该怎么做?是建立多个client吗?还是每发起一个请求就rpc.NewClient("tcp://127.0.0.1:4321","tcp://127.0.0.1:4322")
是的,你这种情况,创建多个客户端就行了,每个服务器创建一个客户端,然后发送请求的时候,你自己选用你觉得合适的算法去选择一个。不要每个请求都创建一个客户端,那样的话,连接池就用不上了。
hprose 3.0 出来了,里面有负载均衡插件,提供了多种不同的负载均衡算法,如果插件中提供的负载均衡算法都不符合需求,还可以参考已有的负载均衡插件来编写自己的负载均衡算法。
client := rpc.NewClient("tcp://127.0.0.1:4321","tcp://127.0.0.1:4322") var stub *Stub client.UseService(&stub)