设置具有高可用性数据库或数据的Web应用程序?

时间:2016-07-15 15:46:05

标签: database entity-framework linq caching high-availability

我有一个Web应用程序,由现场的支持台用户用来管理用户帐户。该应用程序使用LINQ查询以编程方式从我们的数据库中提取数据。在最近的修补过程中,数据库脱机了几个小时,使应用程序无法支持桌面用户。

我想实现一种方法,让数据可供应用程序使用,这样如果发生停机,查询仍然可以返回结果。到目前为止,我发现的最成功的方法是利用EntityFramework.Plus。虽然这对于一般缓存非常有用,但我仍然可以预见,如果数据库在到期时关闭并重新创建缓存以获得最新数据,则会导致停机。我对除设置第二个数据库以外的选项感兴趣。

申请表:

  • 实体框架6
  • MVC 4
  • 每天~20个用户
  • 一个数据库,每个表中有6-8个表和10-20行数据。
  • 当数据库关闭时,不需要能够写入数据,只能读取。

鉴于我的应用程序的使用,在数据库停机的情况下,有哪些建议可以使数据高度可用并且是最新的?第二级缓存是要走的路还是有更好的方法?

1 个答案:

答案 0 :(得分:0)

如果数据库很小,您可以缓存所有内容并将缓存用作数据库故障转移或将数据库放在同一台机器上。

如果数据库很大,您将无法缓存所有内容,因此您需要考虑应用best cache policy然后,您可以搜索一个流行的缓存系统,它实现了这个策略或者只是自己实现它。我还建议您仔细检查您是否真的需要实施过期策略,或者如果数据太旧则发出警告。

如果您要将缓存用作故障转移并提供更快的响应,请确保跟踪每个缓存条目时间戳,因为您必须在尝试获取数据之前检查缓存来自数据库。 (如果缓存不再新鲜,你只会点击数据库)