Tcp在Azure上使用的高性能服务器/框架和配置

时间:2013-02-27 13:22:14

标签: c# wcf azure signalr zeromq

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

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

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

  3. 信号/ R。据我所知,它有第一版,目前已准备就绪,可用作tcp服务器。哪个更好,性能更高的signalR或WCF?我们应该使用wroker角色托管还是IIS托管?

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

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

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

    了解azure的负载平衡器如何影响服务器行为也很棒。

1 个答案:

答案 0 :(得分:1)

经过一番调查,我发现:

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