2

我们需要编写高性能的 tcp 服务器并使用 azure 作为主机。我们有几种选择:

  1. 在 c# 中编写自定义 tcp 服务器,如http://blog.maartenballiauw.be/post/2010/01/17/Creating-an-external-facing-Azure-Worker-Role-endpoint.aspx所述。但我们不想重新发明轮子。

  2. 使用 WCF(可能是最好的方法)。在这种情况下,我们需要很好地了解如何配置它,因为有很多配置选项。有人可以推荐一些配置吗?我们应该使用工作人员角色托管还是 IIS 托管?

  3. 信号/R。据我了解,它有第一版,目前已准备好生产,可用作 tcp 服务器。signalR 和 WCF 哪个更好、性能更好?我们应该使用工作人员角色托管还是 IIS 托管?

  4. 零/C ICE。有人用吗?

  5. 使用此处描述的 ZeroMQ C# 绑定http://zguide.zeromq.org/cs:asyncsrv

不幸的是,我们仍然不知道我们的协议的一些细节(但它将是二进制的)等等。因此,我们需要一种可能性来轻松更改某些服务器行为,而无需进行大的代码更改。

此外,很高兴知道 azure 的负载均衡器如何影响服务器行为。

4

1 回答 1

1

经过一番调查,我发现:

  1. 编写自定义 tcp 服务器是我们唯一的选择。
  2. 在 WCF 中可以做到,但非常困难,因为我们需要使用自定义绑定和自定义消息编码器,这在我们的案例中非常困难。
  3. Signal/R 不适合我们,因为它是为其他类型的任务而设计的。不适用于通用 TCP 服务器。
  4. 没有找到任何相关信息。
  5. ZeroMQ 非常好,它支持 tcp 请求回复样式和多播,但它迫使我们在客户端使用 zmq,因为它使用自定义框架。不幸的是,我们的客户端是用硬件实现的,根本不可能添加 zmq。
于 2013-02-28T14:58:08.983 回答