切换为云服务供电的azure生产表

切换为云服务供电的azure生产表,azure,azure-storage,azure-web-roles,Azure,Azure Storage,Azure Web Roles,我想知道处理以下情况的最佳方法是什么 我有一个azure云服务,它使用azure存储表根据请求查找数据。表中的数据定期脱机生成(每周一次) 脱机生成新数据时,我需要将其上载到单独的表中,并对服务进行配置更改(更改表名),以从新表中提取数据并重新部署服务。(每次数据更改时,我都会更改表名(作为常量存储在代码中)并重新部署) 另一种方法是为my azure web角色保留一个配置参数,该参数指定保存当前生产数据的表的名称。然后,在服务中,我读取每个请求的config变量——获取对表的引用并从中获取数

我想知道处理以下情况的最佳方法是什么

我有一个azure云服务,它使用azure存储表根据请求查找数据。表中的数据定期脱机生成(每周一次)

脱机生成新数据时,我需要将其上载到单独的表中,并对服务进行配置更改(更改表名),以从新表中提取数据并重新部署服务。(每次数据更改时,我都会更改表名(作为常量存储在代码中)并重新部署)

另一种方法是为my azure web角色保留一个配置参数,该参数指定保存当前生产数据的表的名称。然后,在服务中,我读取每个请求的config变量——获取对表的引用并从中获取数据


是上面提到的第二种方法,ok——或者它会对性能造成影响,因为我读取了配置,对服务的每个请求都创建了一个表客户机。(我的服务的SLA不到2秒)

回答您的问题,第二种方法肯定比第一种好。我不认为您会受到性能的影响,因为配置设置是在第一次读取时缓存的(我在这里的一个线程中读取了它),并且创建table client不会产生网络开销,因为除非您在table client上执行某些方法,否则该对象只会位于内存中。一种可能是从配置文件中读取并将其放入静态变量中。更改配置设置时,捕获角色环境更改事件,并从配置文件中将静态变量更新为新值


第三种方法是在另一个表中对表名进行软编码,并让应用程序从中读取表名。您可以在上载过程中更新表名,方法是首先上载数据,然后使用上载数据的新表名更新此表。

从设计角度看,这是征求意见,可能会被关闭。话虽如此:你真的应该仔细考虑这一点,因为基本上与Azure设计无关。扪心自问:您是否真的需要在每次请求时都从配置文件中读取,或者是否有办法将设置保存在内存中,直到下一次更改(同时仍将设置持久保存到配置文件)?如果有一种方法可以将这个设置保存在内存中的话:这就为解决这个问题开辟了许多途径。我同意。我将配置变量用于各种用途,但没有注意到任何性能问题。@Lukos-所以您是说您使用CloudConfigurationManager.GetSettings函数来获取每个请求的配置参数,而没有发现任何性能问题。听起来很鼓舞人心。我只是使用RoleEnvironment.GetConfigurationSettingValue(键),它的速度并不明显慢。