Zan*_*oni 3 c# asp.net scalability
我正在开发一种需要在Windows平台上扩展的服务.
最初它将每秒接收大约50个连接(每个连接将发送大约5kb数据),但它需要可扩展以接收超过500个未来.
将接收的数据保存到像Microsoft SQL Server这样的公共数据库是不切实际的(我猜).
还有其他解决方案来保存数据吗?考虑到它每天将收到超过600万条"记录".
有5个步骤:
我的预解决方案是:
每天600万条记录听起来不是特别大.特别是,每天24小时不是每秒500 - 你认为交通是"突发性的"吗?
我不会亲自使用消息队列 - 我之前被不稳定和一般困难所困扰.我可能只是直接写入磁盘.在内存中,使用生成器/使用者队列,并将单个线程写入磁盘.生产者只会转储要写入队列的记录.
有一个单独的批处理任务,一次将一堆记录插入数据库.
一次对最佳(或至少"好"数量的记录进行批量上传)进行基准测试.您可能希望从磁盘读取一个线程,另一个写入数据库(如果数据库线程有大量积压,则文件线程阻塞),这样您就不会等待文件访问和数据库同时.
我建议您尽早做一些测试,看看数据库可以处理什么(并让您测试各种不同的配置).弄清楚瓶颈在哪里,以及它们会伤害你多少.
| 归档时间: |
|
| 查看次数: |
311 次 |
| 最近记录: |