如何在Azure多实例(缩放集)虚拟机中存储临时数据?

时间:2016-10-09 20:09:05

标签: azure multi-instance-deployment

我们开发了一种服务器服务(用几句话)支持两个设备之间的通信。我们希望利用Azure Scale Set(多实例VM)提供的可伸缩性,但我们不确定如何在每个实例之间共享内存。

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

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

如果其中一个设备开始向服务器发出一些请求,那么要处理请求的实例将不会始终相同,因此最后的数据会在实例之间传播。

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

由于

2 个答案:

答案 0 :(得分:0)

您可以使用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 Table服务和Azure Queue服务)之间的主要区别在于,状态在本地保留在服务实例中,同时也具有高可用性。

     

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

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

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

答案 1 :(得分:0)

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