我问了有关网站可伸缩性的服务器故障的问题,但我的重点是硬件配置,增加的内存等。因此,我想我会在这里提出问题,而且我的问题还有更多的开发方面。
根据问题,我有一个使用SQL Server后端并使用nhibernate和syscache 2级缓存的完美工作良好的asp.net-mvc网站,并且我有一个将用户群从1000个增加到7000个的请求,并且我试图弄清楚在这里,我应该将精力集中在目前可以正常运行但会引起大规模问题的事物上。我已经做了大量的阅读,到目前为止,从编码的角度来看,似乎感兴趣的事情是;
我的SQL Server今天是4GB,就数据而言,我希望其中一些表的大小会线性增长(例如,从1000行增加到7000行的人员表),但随着用户的增加,但大多数其他表格(引用数据等)应仅略有增长(位置等表格可能会翻倍)
最佳答案
您描述的体系结构不可扩展。但是根据您提供的数字,可能根本就不需要扩展性吗?在设计可伸缩性之前要务实。除非您需要,否则不要参与其中。
无论如何,如果您要这样做,则需要按如下所示进行缩放。
首先,区分commands and queries。命令修改数据,查询检索数据。
对于命令,您可以使用消息代理(例如Rabbit MQ)或服务总线(例如NServiceBus)。想法是Web服务器可以快速将命令放在队列中,并将响应返回给用户。可扩展性是通过扩展命令处理程序的数量而不接触Web服务器来实现的。显然,如果您想通知用户,则需要使用诸如SignalR之类的技术。
对于查询,您需要了解它们不像命令那样擅长扩展。因此,您需要在这些方面发挥创造力。
关于asp.net-mvc - 扩展asp.net-mvc网站时,在优先级方面要重点关注的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41037129/