gpt4 book ai didi

c# - WCF 与套接字性能

转载 作者:行者123 更新时间:2023-11-30 16:42:01 24 4
gpt4 key购买 nike

我目前正在阅读 WCF 和套接字(此处和 MSDN)。

据我所知,WCF 比套接字慢,但更易于使用。

有以下情况:

  • 500 位客户
  • 客户端向它响应的服务器发送请求
  • 客户端也向服务器发送状态报告
  • 服务器响应范围从收到消息到向它们传输 200 MB 数据。

  • 所有通信均已加密(例如 SSL)

我的目标是尽可能安全地处理所有通信(就异常、超时等问题而言是安全的),并且易于维护程序。

此外,较少的数据传输密集请求/响应需要快速(因此只传输几 KB 的数据)。

我的问题是,WCF 比套接字慢......WCF 是否仍然足够快以处理如此大的系统/情况,还是套接字是更好的方法?

编辑:正如评论中提到的 ASP.NET 和其他基于 web 的解决方案也可以做到这些,因此那里不仅对普通套接字而且对 websockets 也很感兴趣(web 套接字与 wcf 应该与套接字与 wcf 没有太大区别)。

最佳答案

Websockets 的工作级别低于 WCF,因此从这个意义上讲它也将“更快”。

但首先我要问你是否真的需要这种额外的速度?
这有点像问您是否应该购买法拉利而不是 Mini,因为法拉利速度更快。

是的,但除非您始终需要以 200 公里/小时以上的速度比赛,否则您将不会获得任何好处,尤其是在限速 50 公里/小时的道路上!

您需要先确定您真正的需求是什么。客户端的数量 (500) 和偶尔的大响应的大小不会产生太大影响。您需要确定每秒需要处理多少请求。这些请求的平均大小。然后基于此您需要的带宽。

请记住,无论您使用何种技术,物理电缆(或 wifi 网络)都以完全相同的速度运行。所以实际上“速度”不是问题,但带宽或延迟可能是问题。

这些问题可以通过使用正确的架构来处理您的请求来解决。这意味着能够扩展您的应用程序以满足您的需求。

因此,您需要确定应用程序中的瓶颈是什么。例如:您的服务器将不得不对它接收到的数据做一些事情,也许将其写入数据库。这可能是您的瓶颈,因此 Websockets 或 WCF 对您每秒可以处理的操作数没有影响。

同样,如果您的服务器是单线程的,则它无法扩展,因此所使用的技术同样没有区别,这不是您的问题。

也许您过于关注一个方面,而不是大局。我想你可能有点 XY problem这里!

我也确实找到了这些,这可能很有趣; https://msdn.microsoft.com/en-us/library/bb310550.aspx

WCF performance, latency and scalability

http://www.ganshani.com/blog/2014/02/optimizing-performance-of-your-wcf-services/

http://theburningmonk.com/2010/05/wcf-improve-performance-with-greater-concurrency/

我相信你能找到更多

关于c# - WCF 与套接字性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47471110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com