具有指定应处理请求的服务器的自定义负载平衡器
Custom Load Balancer with capability to Specify Server that Should Process Request
如何实现自定义负载平衡决策方法来指定具体应由哪个服务器处理请求?
目前,我正在使用 Azure,因此 MS 解决方案更可取(ARR 或 WLBS)。
每个服务器实例可能有几个独特的资源("unique" 意味着只有这个特定的服务器实例拥有它)。
应用程序为每个资源创建一个唯一的 ResourceID,并将此 ResourceID 提供给客户端 "on demand"。
客户端的进一步请求由 ResourceID 指定。
自定义负载均衡器决策方法应该允许我指定如何:
从请求中获取 ResourceID(应该在第 7 层工作)。
根据 ResourceID(来自我的自定义 table)获取 ServerInstanceID(或 IP 或任何需要的)。
通知负载均衡器确切应该处理该请求的应用程序服务器实例(传递 ServerInstanceID)。
P.S。也许我应该在这里说 "proxy" 而不是 "load balancer"。但是为了高可用性,它需要多个代理服务器和负载均衡器来分散它们之间的流量。因此,纯代理解决方案只会为应用程序带来另一层。
我在 IIS.NET 论坛上发现了两个有用的话题:
Custom load balancing decision function
using URL Rewrite Module for custom load balancing
推荐两种主要方法:
使用自定义负载平衡。
使用自定义应用程序请求路由 (ARR)。
最有意思的是,不同的线程相互推荐使用:)
尽管如此,我还是会回顾一下建议的方法。
如何实现自定义负载平衡决策方法来指定具体应由哪个服务器处理请求?
目前,我正在使用 Azure,因此 MS 解决方案更可取(ARR 或 WLBS)。
每个服务器实例可能有几个独特的资源("unique" 意味着只有这个特定的服务器实例拥有它)。 应用程序为每个资源创建一个唯一的 ResourceID,并将此 ResourceID 提供给客户端 "on demand"。 客户端的进一步请求由 ResourceID 指定。
自定义负载均衡器决策方法应该允许我指定如何:
从请求中获取 ResourceID(应该在第 7 层工作)。
根据 ResourceID(来自我的自定义 table)获取 ServerInstanceID(或 IP 或任何需要的)。
通知负载均衡器确切应该处理该请求的应用程序服务器实例(传递 ServerInstanceID)。
P.S。也许我应该在这里说 "proxy" 而不是 "load balancer"。但是为了高可用性,它需要多个代理服务器和负载均衡器来分散它们之间的流量。因此,纯代理解决方案只会为应用程序带来另一层。
我在 IIS.NET 论坛上发现了两个有用的话题:
Custom load balancing decision function
using URL Rewrite Module for custom load balancing
推荐两种主要方法:
使用自定义负载平衡。
使用自定义应用程序请求路由 (ARR)。
最有意思的是,不同的线程相互推荐使用:)
尽管如此,我还是会回顾一下建议的方法。