hprose 的 tcp 客户端支持同时设置多个服务地址,每个客户端会自动随机选择一个,将流量分摊,当某个服务器出现故障时,还可以自动切换(有选项)
其实 hprose 的所有传输协议上的客户端都支持设置多个服务器地址,只是服务地址必须是一样的传输协议,而且服务内容是相同的。这是 hprose 2.0 的客户端提供的功能。
有几个属性跟负载均衡有关,他们分别是:failswitch,failround, idempotent, retry ,另外还有这个 onFailswitch 事件。
这个设计是为了让客户端尽可能减少对注册中心的依赖,和防止注册中心连不上的时候,客户端不能正常工作
比如你客户端可以保存一份本地的服务列表,当能跟注册中心连接的时候,更新这个列表,连不上的时候就使用本地列表,在 onFailswitch 事件发生时,判断 failround 属性是否大于 0,如果大于 0,说明现在所有的客户端拥有的服务列表已经切换一遍了,那就可以再去注册中心拉一份新的试试看,如果注册中心能连上,就更新,如果连不上,可以继续在本地列表上重连测试。
通过 http 发布的是不是也可以用基于客户端的负载均衡?这样就省的再走 haproxy 或 nginx 的反向代理了
这个负载均衡是通用的,并且支持 HTTPS。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于