我需要你的专家意见的解决方案/建议…
- 我们正在构建一个API解决方案,用户将向我们发送一个唯一的代码以及用户名和密码,以获得认证码和其他信息…
挑战我们正面临…
- 如何处理每秒超过100个请求?我们目前使用mysql,但是扩展到那个级别和数据存储成本很高。你认为Windows Azure表存储是正确的选择,做很多选择认证,然后做更新扣除用户积分,谁有兴趣从我们那里提取信息.....
- 我们想记录大量的数据。我认为windows azure存储将是便宜的,但如何做聚合和分析?你知道任何案例研究/方法导入数据回mysql说,每日/小时分区?任何工具或库已经可以导入Windows Azure存储表数据到MySQL数据库??
- 如果有人试图做很多滥用请求我们的服务器如何处理的情况?试图在每秒内执行大量无效的验证,从而导致我们的API出现大量点击?如何控制呢?
对于#1:Windows Azure表存储设计为每个分区每秒处理2,000个事务,整个存储帐户每秒处理20,000个事务,最大入站带宽为10Gbps,出站带宽为15Gbps(有关详细信息,请参阅这篇MSDN文章)。处理100 tx/秒应该没有问题。不要忘记实体组事务,您可以在一个事务中写入多个实体(在同一分区内)。
对于#2(甚至#1):分区是非常重要的,以实现最大的性能。还要记住,如果需要进行复杂的搜索(比如,对几个不同的属性进行搜索),最终可能会遇到执行分区扫描的情况(因为您拥有的唯一索引是分区键+行键)。如果您打算进行分析,最好只是读取这些数据,根据需要进行总结(或根据需要进行非规范化),并写入更适合分析/深入/绘图等的数据库。
我想说#3应该作为一个单独的问题发布,因为它属于拒绝服务类型的问题,这似乎是不相关的。