【问题标题】:Suitable cloud service for storing web service output cache?适合存储 Web 服务输出缓存的云服务?
【发布时间】:2011-06-28 07:17:37
【问题描述】:

我正在开发一个主要返回 C# 数据表的 Web 服务。

它当前将输出结果缓存到 memcached 集群中,该集群由另一个缓存更新器根据内部消息进行刷新。

由于这些缓存不会过期,因此具有良好的故障转移等功能至关重要... 随着我的继续,在这个裸机 memcached 集群上确保故障转移或可靠的缓存键控制变得非常困难。

此外,可扩展性正成为一个重要的问题,因为这将是一个大型流量门户的背后。

所以我在考虑是否有任何基于云的数据库服务(AWS SimpleDB、AWS MySQL 或 Azure?)可以成为这方面的理想选择。

【问题讨论】:

    标签: azure cloud outputcache amazon-simpledb


    【解决方案1】:

    我最近在使用 AWS SimpleDB,如果您只需要转储大量数据矩阵,它似乎非常好。我正在用 python 编写一个脚本,所以我使用了相关的库,它可以让你执行以下操作:

     sdb = simpledb.SimpleDB('secret id') 
     forex_rates = sdb['forex'] # forex is the domain (table)
     forex_date = forex_rates['2011-01-01'] #get a row of the domain
     usd_rate = forex_date['USD']           #get a cell/datum
     forex_date['USD'] = '1.435'            #modify the cell
     forex_date['USD'].save()  # write the data back to the cloud
    

    它不是您可能已经知道的关系数据库。

    【讨论】:

    • 感谢您的回复。一个问题是,根据.Net示例,字符串数据的值不能超过1024字节。这将是有问题的,因为序列化的 DataTable 很容易超过。
    • 如何序列化?如果它最终成为一个长字符串,您可以将它托管在 S3 上。没有什么可以阻止您将其用作 RESTful XML/JSON 服务。 SimpleDB 非常适合大型简单数据矩阵。哦,一定要在这里接受/赞成其中一个答案。
    • DataTable 将被序列化为 xml 并且将是相当长的字符串。 AWS 提供的示例 C# 代码使用 ReplaceableAttribute Class,它表示不能超过 1024 字节。我觉得我对 Attribute 的理解不够好。
    【解决方案2】:

    如果您使用的是 Azure,您是否研究过 Azure AppFabric 缓存?快速浏览一下您的需求,它似乎会为您提供适合云的缓存模型。看看

    http://www.microsoft.com/windowsazure/AppFabric/Overview/default.aspx#top

    【讨论】:

    • AppFabric 缓存对我们来说听起来像是一个不错的候选者,但它仍处于社区预览阶段。
    • 这是一个多大的问题取决于您何时打算发布。我认为它目前不适合生产门户(如果它像您建议的那样具有高流量,则不适合),因为它在升级时偶尔会出现重大中断并且发生了一些重大更改。但是,如果您有 6 个月的时间,那么可以继续开发。
    • 我们只有 2~3 个月的时间来发布。不过,谢谢你的提示。
    猜你喜欢
    • 2014-09-05
    • 2020-02-25
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 2013-05-22
    相关资源
    最近更新 更多