gpt4 book ai didi

c# - WCF——解决方案架构

转载 作者:行者123 更新时间:2023-11-30 14:37:29 26 4
gpt4 key购买 nike

我正在开发一个项目,在该项目中,iOS 应用程序将使用 WCF 服务。在任何给定时间点,网络服务器上预期的点击次数约为 900-1000。每个请求可能需要 1-2 秒才能完成。预计每秒 24/7 的请求数量相同。

这是我的计划:

  1. 编写 WCF RESTful 服务(实例上下文模式将为 percall)。
  2. 请求/响应将在 Json 中。
  3. 有些信息需要保存在服务器中——这些信息实际上是从另一个远程系统接收到的——在所有请求之间共享。由于使用数据库可能不是一个好主意(响应时间非常重要 - 2 秒是客户可以等待的最大时间),将它保存在服务器内存中会更好吗(比如静态字典 - 假设这个字典将是一个150000 个对象的集合——每个对象包含 5-7 种字符串类型及其键)。我知道,这是不稳定的!
  4. 每个请求都会产生一个新线程(通过使用 Threading.Timers)来进行一些清理工作——该线程还将进行一些数据库读/写操作。

现在,如果稍后引入负载均衡器,内存中存储的对象将无法在通过另一个节点路由的请求之间共享 - 有什么想法吗?

我希望各位大师可以通过对整个体系结构、WCF 节流、对象状态持久性等提出您的意见/建议来帮助我。请提供一些有关所需硬件的指示。我们计划使用Windows 2008企业版服务器、IIS和SQL Server 2008标准版数据库。

添加更多 t #3:正如我所说,我们从远程系统获取服务的一些信息。在托管 WCF 的 Web 服务器上,将安装远程系统的客户端,WCF 引用此客户端 dll 之一以哈希表的形式获取信息(该方法返回一个哈希表 - 大约 150000 个对象将在这个集合中)。您是否建议将此信息写入数据库,并且到达服务的 iOS 请求(每秒)直接从数据库中检索此信息?如果它是静态的,它会比直接从这个哈希表中消费更好吗?

最佳答案

由于您使用的是 Windows Server 2008,我肯定会使用 Windows Server App Fabric Cache 来存储您的状态:

http://msdn.microsoft.com/en-us/library/ff383813.aspx

它可以免费使用、得到很好的支持和集成,并且(或多或少)API 与 Windows Azure App Fabric Cache 兼容,如果您每次都将服务转移到 Azure。在我们公司(免责声明:不是我的团队),我们曾经使用 MemCache,但改为使用 App Fabirc Cache,不要后悔。

关于c# - WCF——解决方案架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9214614/

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