使用 RoutingService 与 nginx 的 WCF .NET Web 服务负载平衡
WCF .NET Webservice load balancing using RoutingService vs nginx
我目前正在评估具有负载平衡的 WCF Webservice HA 解决方案。对于我正在创作的 WS 类型,我看到了 2 种可行的方法,它们是
1) 使用.NET提供的路由服务API / Class
2) 使用像 nginx 这样的 HTTP 负载平衡器。
对于在 IIS 上托管的 WCF WS,哪种方法更好。
这取决于很多因素。主要的是,负载平衡要求是纯粹的 availability/scalability 驱动要求还是业务要求?
如果您只需要规模,例如循环分配,或高可用性,例如。 active/passive 故障转移,并且您的服务器前面已经有一个网络负载平衡器,那么我肯定会使用它。
原因很简单,届时它将由您的基础设施人员照管,这本应如此。 scale/availability 等的负载平衡通常不是开发问题。
但是,如果您有基于消息内容的路由需求,例如仅将高优先级呼叫路由到一个端点,或满足不同内容的呼叫处理 SLA,那么这将成为一项业务需求,因为路由逻辑将然后根据调用的业务上下文确定。
这绝对是一个发展问题。在这种情况下,我当然会使用路由服务来实现这些不同的业务案例。
希望对您有所帮助。
我目前正在评估具有负载平衡的 WCF Webservice HA 解决方案。对于我正在创作的 WS 类型,我看到了 2 种可行的方法,它们是
1) 使用.NET提供的路由服务API / Class 2) 使用像 nginx 这样的 HTTP 负载平衡器。
对于在 IIS 上托管的 WCF WS,哪种方法更好。
这取决于很多因素。主要的是,负载平衡要求是纯粹的 availability/scalability 驱动要求还是业务要求?
如果您只需要规模,例如循环分配,或高可用性,例如。 active/passive 故障转移,并且您的服务器前面已经有一个网络负载平衡器,那么我肯定会使用它。
原因很简单,届时它将由您的基础设施人员照管,这本应如此。 scale/availability 等的负载平衡通常不是开发问题。
但是,如果您有基于消息内容的路由需求,例如仅将高优先级呼叫路由到一个端点,或满足不同内容的呼叫处理 SLA,那么这将成为一项业务需求,因为路由逻辑将然后根据调用的业务上下文确定。
这绝对是一个发展问题。在这种情况下,我当然会使用路由服务来实现这些不同的业务案例。
希望对您有所帮助。