【问题标题】:Tcp high performance server/framework and configuration to use on Azure在 Azure 上使用的 Tcp 高性能服务器/框架和配置
【发布时间】:2013-02-27 13:22:14
【问题描述】:

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

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

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

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

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

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

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

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

【问题讨论】:

  • 您也可以查看我的网络库:blog.gauffin.org/2012/11/…blog.gauffin.org/2012/05/…
  • 首先,如果您需要原始 TCP,SignalR 不会帮助您。 SignalR 在所有情况下都可以通过 HTTP 开始工作,但如果客户端和服务器都支持它们,它可以从那里升级到 WebSockets。也就是说,我认为您需要提供更多详细信息,说明您需要沟通什么样的事情以及您的性能要求究竟是什么,才能获得好的答案。跨度>

标签: c# wcf azure signalr zeromq


【解决方案1】:

经过一番调查,我发现:

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

【讨论】:

  • 您可以使用 0MQ 和原始套接字,即普通 TCP/IP,使用 ZMQ_ROUTER_RAW 选项。然后,您可以使用旧协议与现有客户端通信,并在其他地方使用 0MQ 自己的协议。
  • 很遗憾 clrzmq 现在不支持了。
猜你喜欢
  • 2011-08-26
  • 2013-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-30
  • 2022-06-22
  • 2019-07-07
  • 1970-01-01
相关资源
最近更新 更多