3

因此,很容易对 ASP.NET Web 应用程序进行负载平衡。您在两台服务器之间设置了负载平衡器,如果 Web 服务器在端口 80 上没有响应,它将不会接收请求。

对于 C# 控制台应用程序或 Windows 服务,是否有任何经过验证的技术可以自行执行此操作?是否有任何框架可以知道对等进程是活着还是死了,做心跳等?

我一直在用NServiceBus进行一些试验,似乎对于某些类型的应用程序,它有助于将大部分工作作为对事件的响应来完成,这实际上使它更像一个 Web 应用程序,因此更容易通过多个进程进行扩展和负载平衡,但我觉得这是一个半生不熟的解决方案,因为在大多数情况下,通常需要一些“主”进程的概念来负责开始工作。

4

1 回答 1

3

NServiceBus 确实通过其 Distributor 流程为您处理了这个问题(在此处描述:http://docs.particular.net/nservicebus/scalability-and-ha/distributor/ 。NServiceBus 附带的通用主机允许您将完全相同的代码和配置作为控制台应用程序和 Windows 服务运行(此处描述:http: //docs.particular.net/nservicebus/hosting/nservicebus-host/)。

您可以将其用于事件以及常规命令消息。

如果您想要一个“主”进程来决定在所有负载平衡工作完成时做什么,它以 saga 基础设施的形式提供给您(在此处描述:http: //docs.particular.net/nservicebus/ sagas/并在 NServiceBus 附带的制造示例中进行了演示)。

简而言之,您几乎应该被覆盖。

于 2010-03-29T14:22:19.137 回答