【问题标题】:Azure- static repository needs reloadingAzure-静态存储库需要重新加载
【发布时间】:2013-05-01 22:58:51
【问题描述】:

我有一个静态存储库,在内存中存储了一个大型 XML 文件结构,并且在 MVC 应用程序中只加载一次。该应用程序托管在具有 2 个实例的 Azure (Paas) 上。 我们有一个设计工具,用于从该存储库中添加更多内容或删除内容。我们发现的挑战是,一旦添加了东西,我们需要通过拆除存储库并重新创建它来重新加载存储库。这可行,但会留下一个问题,即静态存储库仅在服务器 A 上刷新,而不在服务器 B 上刷新。 如果请求发送到服务器 B,则用户看不到该更改,因为它尚未更新。 On;y 两个实例上的 IIS 重置解决了这个问题。我曾尝试使用 Session 状态来存储存储库,但是当我们用作将值存储在数据库表中的自定义 Session 提供程序时,会在每个页面请求上调用 session_start 事件,从而导致性能问题。 有没有人有更优雅的解决方案来更新两台服务器上的存储库并使用任何现代技术。

【问题讨论】:

    标签: azure multi-instance-deployment


    【解决方案1】:

    您是否考虑过使用角色内缓存来存储存储库(当然,就像您已经在做的那样持久化它)?

    您可以使用现有 Web 角色的内存,也可以创建专用缓存角色。缓存将跨越您的所有实例,因此您将从每个实例访问相同的数据。

    更进一步:如果您担心角色实例重启期间数据丢失(这意味着当实例关闭时您的一些数据将不再位于缓存中),您可以启用高可用性缓存命名空间。此时,数据会在实例之间复制,这样您就可以在实例重启后幸存下来。

    您会在角色属性中找到同位(或专用)缓存设置:

    【讨论】:

    • 在代码中保持更新有多容易(任何代码示例链接)?第一次在 MVC 中创建它的最佳“事件”是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多