【问题标题】:How to store temporary data in an Azure multi-instance (scale set) virtual machine?如何在 Azure 多实例(规模集)虚拟机中存储临时数据?
【发布时间】:2016-10-09 20:09:04
【问题描述】:

我们开发了一种服务器服务(简而言之)支持两台设备之间的通信。我们希望利用 Azure 规模集(多实例 VM)提供的可扩展性,但我们不确定如何在每个实例之间共享内存。

我们的服务基本上将临时数据存储在本地虚拟机中,这些数据被读取、修改并发送到连接到该服务器的设备。

如果这些数据本地存储在其中一个实例中,则其他实例无法访问并且没有相同的信息。对吗?

如果其中一台设备开始向服务器发出一些请求,则要处理该请求的实例并不总是相同,因此最后的数据会在实例之间传播。

那么问题可能是,如何在 Azure 实例之间共享内存?

谢谢

【问题讨论】:

    标签: azure multi-instance-deployment


    【解决方案1】:

    根据您要共享的数据类型和延迟的重要性,以及 ServiceFabric(低延迟,但您需要重新构建/重新构建解决方案的部分),您可以查看共享的背面end repository - Redis Cache 是理想的分布式缓存; SQL Azure 如果你想使用关系数据库来存储数据;存储队列/blob 存储 - 或存储帐户中的文件存储(这允许您从两个 vm 实例写入已安装的网络驱动器)。 DocumentDB 是另一种选择,适合存储 JSON 数据。

    【讨论】:

    • 使用数据库或文件存储对我来说似乎负担得起。您知道是否可以在多个实例之间共享一个驱动器,以便我可以将其作为普通驱动器访问,即 /tmp/mountpount ?
    • 是的,这就是文件存储容器的设计目的。请注意,性能/延迟可能是标准存储帐户的问题,您可能需要验证并查看限制。
    【解决方案2】:

    您可以使用 Service Fabric 并利用 Reliable Collections 让您的状态在所有实例中自动复制。

    来自https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-services-reliable-collections/

    Microsoft.ServiceFabric.Data.Collections 命名空间中的类提供了一组开箱即用的集合,可自动使您的状态高度可用。开发人员只需对 Reliable Collection API 进行编程,并让 Reliable Collections 管理复制和本地状态。

    Reliable Collections 与其他高可用性技术(如 Redis、Azure 表服务和 Azure 队列服务)的主要区别在于,状态在服务实例中本地保存,同时也具有高可用性。

    Reliable Collections 可以被认为是 System.Collections 类的自然演变:一组新的集合,专为云和多计算机应用程序而设计,不会增加开发人员的复杂性。因此,可靠集合是:

    • 已复制:复制状态更改以实现高可用性。
    • 持久化:数据被持久化到磁盘中,以便在大规模中断(例如,数据中心断电)时保持持久性。
    • 异步:API 是异步的,以确保在产生 IO 时线程不会被阻塞。
    • 事务性:API 利用事务的抽象,因此您可以轻松管理服务中的多个可靠集合。

    使用可靠的集合 -
    https://azure.microsoft.com/en-us/documentation/articles/service-fabric-work-with-reliable-collections/

    【讨论】:

    • 乍一看,这个解决方案似乎相当复杂,至少对于我必须完成的任务而言。我正在寻找更 C++/linux 风格的解决方案,例如安装驱动器或共享内存块。
    • 如果您正在寻找更接近 IaaS 的方法,为什么不使用 Azure 文件存储? azure.microsoft.com/en-us/documentation/articles/… - 因为它是 SMB 2.1/3.0,所以在 Linux 和 BSD 上也很适合。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    相关资源
    最近更新 更多