本地Azure Service Fabric Cluster的负载平衡器

rfc*_*ong 9 nginx azure azure-service-fabric internal-load-balancer

作为开发人员,我们在Azure Service Fabric上编写了微服务,我们可以在Azure中以某种PaaS概念为许多客户运行它们.但是我们的一些客户不希望在云中运行,因为数据库是本地的,而不是从外部可用,甚至不是通过DMZ.没关系,我们承诺支持它,因为Azure Service Fabric可以作为集群安装在本地.

我们在每个虚拟机上运行一个API网关微服务,它使用名称解析器,并相应地路由和分发请求,但API网关微服务提供的API是另一个客户端软件的入口.客户使用,该软件在集群外部运行,并且必须向API发送请求.

我建议在客户端软件发送请求的单独机器(或机器)上使用HA-Proxy或Nginx等负载均衡器,然后反向代理将其转发到集群内的可用机器.

这似乎不是我们客户想要的,另一台机器作为负载均衡器不是一种选择.他们建议:让客户端软件变得更聪明,找出要去哪个主机,换句话说:我们应该在客户端软件中编写自己的故障转移/负载均衡器.

我们还有其他选择吗?

PS:客户端应用程序每秒发送的请求不多,可能每分钟发送一次.

Rom*_*syk 4

非常相似的问题,我们有许多服务和在本地运行的 Service Fabric 集群。当需要使用负载平衡器时,我们在运行 Service Fabric 群集的同一台计算机上安装 IIS。由于 IIS 是一个很好的负载均衡器,我们仅使用 IIS 作为 API 网关的反向代理。Kestrel 托管用于通过 HTTP 通信的其他服务。API 网关微服务是所有客户端的单一入口点,并且始终在 SF 内具有静态 URI,我们使用该 URI 来配置 IIS

如果您无法使用 IIS,请查看使用 nginx 作为 HTTP 负载均衡器