我正在研究iOS应用程序将使用WCF服务的项目。网络服务器在任何特定时间点的点击次数大约为900-1000次。每个请求可能需要1-2秒才能完成。预计每24/7每秒都会有相同数量的请求。WCF - 解决方案体系结构
这是我的计划:
- 写WCF RESTful服务(实例上下文模式将percall)。
- 请求/响应将在Json中。
- 有一些信息需要在服务器中保存 - 这些信息实际上是从另一个远程系统接收的 - 它在所有请求之间共享。由于使用数据库可能不是一个好主意(响应时间非常重要 - 客户可以等待最长时间为2秒),将它保存在服务器内存中会更好吗(比如静态字典 - 假设这个字典是一个收集150000个对象 - 每个对象由5-7个字符串类型及其键组成)。我知道,这是不稳定的!
- 每个请求会产生一个新的线程(通过使用Threading.Timers)来做一些清理 - 这个线程也会做一些数据库读写。
现在,如果稍后推出负载均衡器,那么内存中存储的对象不能在通过另一个节点路由的请求之间共享 - 任何想法?
我希望你的大师能够通过在整个架构上抛出你的意见/建议,WCF节流,对象状态持久等来帮助我。请提供一些关于所需硬件的指针。我们计划使用Windows 2008 Enterprise Edition服务器,IIS和SQL Server 2008 Std版本数据库。
添加更多t#3: 正如我所说的,我们从远程系统获得一些信息给服务。在托管WCF的Web服务器上,将安装远程系统的客户端,并且WCF引用其中一个客户端DLL以哈希表的形式获取信息(该方法返回哈希表 - 约150000个对象将在这里收集)。您是否建议将此信息写入数据库,并且到达该服务的iOS请求(每秒)会直接从数据库中检索此信息?如果它是静态的,它会比直接从这个散列表中消耗更好吗?
如果你引入负载平衡器,我会坚持一个无共享架构。 – 2012-02-09 16:34:30
我也会使用像Velocity这样的缓存平台,而不是自己滚动。 – 2012-02-09 16:35:04
请参阅http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts/ – 2012-02-09 17:26:26