【发布时间】:2010-11-17 02:36:59
【问题描述】:
我正在开发一项需要在 Windows 平台上进行扩展的服务。
最初它将每秒接收大约 50 个连接(每个连接将发送大约 5kb 数据),但它需要可扩展以接收超过 500 个未来。
将接收到的数据保存到 Microsoft SQL Server 等通用数据库是不切实际的(我猜)。
还有另一种保存数据的解决方案吗?考虑到它每天将收到超过 600 万条“记录”。
有5个步骤:
- 通过http处理程序(c#)接收数据;
- 保存接收到的数据;
- 请求处理保存的数据;
- 处理请求的数据;
- 保存处理后的数据。
我的预解决方案是:
- 通过http处理程序(c#)接收数据;
- 将接收到的数据保存到Message Queue;
- MSQ 请求使用 Windows 服务处理保存的数据;
- 处理请求的数据;
- 将处理后的数据保存到 Microsoft SQL Server(这是瓶颈);
【问题讨论】:
-
为什么你认为这是不切实际的?您是否尝试过模拟它并检查在给定硬件配置中可能达到的限制?
-
能否指定您使用的 Sql Server 版本。如果它是 Express 版本之一,那么您将永远无法处理这种流量......另外,您应该查看您的表索引以查看是否导致减速。我基本上是在说:不要这么快就逃离数据库服务器解决方案。它应该真的能够处理你所描述的那种音量。 (当然是在足够强大的硬件上运行。)
-
600 万条记录不一定那么多。记录有多大?我想我会默认使用 SQL DB,然后当且仅当它确实是瓶颈时,请查看 Amazon 的 SimpleDB 之类的东西。只需使用一种数据存储库模式,以后可以轻松将其换出...
标签: c# asp.net scalability