使用Apache HTTP客户端进行客户端负载均衡
问题描述:
我们正在构建具有客户端负载平衡和故障切换功能的可扩展点到点微服务架构。基本思想是像HashiCorps的Consul一样管理DNS SRV记录的服务发现。使用Apache HTTP客户端进行客户端负载均衡
作为HTTP客户端,我们使用Apache http组件。
我想象的算法看起来是这样的:
- 在启动时客户端查找SRV记录就是了消费服务。
- 客户端将
HttpClient
的实例配置为循环访问可用服务。 - 客户端定期向DNS服务器查询更新(由DNS记录的TTL控制),并在添加或删除主机时更新
HttpClient
。 - 调用客户端的代码只使用绝对路径,没有方案,主机或端口。
约束:
- 的SRV记录方面的优先和加权字段。
- 使用退避策略和临时主机禁用实现故障切换。
有没有一种漂亮的方式来配置Apache的http组件这种方式,我还没有找到?这种需求有没有更好的库?
非常感谢您的意见和建议。