在Azure上使用的Tcp高性能服务器/框架和配置
本文关键字:服务器 框架 配置 高性能 Tcp Azure | 更新日期: 2023-09-27 18:01:35
我们需要编写高性能tcp服务器并使用azure作为托管。我们有几个选项:
-
用c#编写自定义tcp服务器,如http://blog.maartenballiauw.be/post/2010/01/17/Creating-an-external-facing-Azure-Worker-Role-endpoint.aspx所述。但是我们不想重新发明轮子。
-
使用WCF(可能是最好的方法)。在这种情况下,我们需要很好地了解如何配置它,因为有很多配置选项。有人能推荐一些配置吗?我们应该使用工作者角色托管还是IIS托管?
-
/R信号。据我所知,它有版本1,目前已准备好生产,可以用作tcp服务器。信号r和WCF哪个更好,性能更好?我们应该使用工作者角色托管还是IIS托管?
-
0/C冰。有人用它吗?
-
像这里描述的那样使用ZeroMQ c#绑定http://zguide.zeromq.org/cs:asyncsrv
不幸的是,我们仍然不知道我们协议的一些细节(但它将是二进制的)等等。因此,我们需要一种不需要大量代码更改就能轻松更改某些服务器行为的可能性。
如果能知道azure的负载均衡器是如何影响服务器行为的,那就太好了。
经过一番调查,我发现:
- 编写自定义tcp服务器是我们唯一的选择。
- 这在WCF中是可以做到的,但是非常困难,因为我们需要使用自定义绑定和自定义消息编码器,这在我们的情况下非常困难。
- 信号/R不适合我们,因为它是为其他类型的任务设计的。
- ZeroMQ真的很好,它支持tcp请求回复风格和多播,但它迫使我们在客户端使用zmq,因为它使用自定义帧。不幸的是,我们的客户端在硬件上实现,根本不可能添加zmq。