我正在运行一个 ASP.NET 网站,服务器既可以读取数据也可以将数据写入数据库,还可以将一些经常访问的数据直接存储在进程内存中作为缓存。当新请求进来时,它们会根据缓存中的数据进行处理,然后再将其写入数据库。
我的托管服务提供商突然决定将他们的服务器置于负载平衡器之下。这意味着我的缓存系统会因为多台服务器随机处理请求而变得非常糟糕。所以我不得不重写我的应用程序的一大块只是为了获得更差的性能,因为我现在必须查询数据库而不是在内存变量检查中快速进行。
首先,我并没有真正看到在 iis 服务器上分配负载的意义,因为根据我的经验,数据库查询通常是瓶颈,现在数据库必须承受更多的冲击。其次,这些事情似乎需要仔细规划,而不仅仅是托管服务提供商为所有客户设置的东西,并期望所有应用程序都适合他们。
这些事情是常见的还是我首先使用进程内存作为缓存是愚蠢的?
我应该开始寻找新的托管服务提供商,还是可以期待网络农场迟早会出现在任何地方?对于我编写的所有未来应用程序并完全避免进程缓存和类似设计,我是否应该保留这样的转换?
(请不要把它变成一场农场与非农场的战斗,我只是想知道它是否如此普遍以至于我在开发时必须牢记这一点。)