使用Apache HTTP Client进行客户端负载平衡

时间:2016-02-14 20:12:24

标签: java failover apache-httpcomponents

我们正在构建可扩展的点对点微服务架构,具有客户端负载平衡和故障转移功能。基本思想是使用DNS SRV记录管理服务发现,就像HashiCorps的领事一样。

作为HTTP客户端,我们使用Apache http组件。

我设想的算法看起来像这样:

  • 启动时,客户端会查找要使用的服务的SRV记录。
  • 客户端通过可用服务将HttpClient的实例配置为循环。
  • 客户端定期向DNS服务器查询更新(由DNS记录的TTL控制),并在添加或删除主机时更新HttpClient
  • 调用客户端的代码仅使用没有方案,主机或端口的绝对路径。

约束:

  • 尊重SRV记录的优先级和权重字段。
  • 使用后退策略和临时主机禁用来实施故障转移。

有没有一种很好的方式来配置Apache的http组件,这是我还没有找到的?有没有更好的图书馆满足这种要求?

非常感谢您提供意见和建议。

1 个答案:

答案 0 :(得分:1)

我发现Ribbon by Netflix完全符合我的需要。