虽然SQL Azure是基于SQL Server技术的,并且SQL Server的大多数***实践都适用于SQL Azure,但在构建新类型的应用系统时,面对一些体系结构和特征的差异还需要进一步的考虑和深究。
例如,当数据库负载过多时,需要考虑数据库连接方式的不同和SQL Azure数据源连接不畅,并且开发应用程序处理在传统SQL Server应用程序中未遇到的问题。这篇文章将为你提供若干建议和***实践来帮助你进行SQL Azure数据库部署。
如果您的前端应用程序在Windows Azure主机上,则应将应用程序和SQL Azure数据库放置在同一机器上,这将通过减少应用程序和数据库服务器之间的延迟来优化连接。传统上,Web服务器和数据库服务器在同一台机器上,但SQL Azure主机放置在世界上的几个数据中心。因此,从系统配置方面看,Windows Azure的应用程序应跟SQL Azure放在相同的机器上。
正如传统数据库通过向外扩展而不是向上扩展来处理负载应对更大、更频繁的使用。SQL Azure数据库因为资源的限制更适用于此规则。当SQL Azure发现一个数据库使用了过多的CPU和磁盘I / O时,它通过节制吞吐量来确保其他数据库不会受到影响。由于在数据库一级实施节流,可在水平或垂直方向的多个数据库中分散大量数据,通过这种方式,连接不畅的机会将会减少,任何潜在的连接不畅也只会影响一部分数据集。
此外,如果需要在两台数据库间启动SQL Azure的故障切换,小数据库可以做得更快。同样,如果你有一台只读的数据库服务器从SQL Server得到刷新,您可以在SQL Azure中创建多个数据库使得应用程序可以循环或者随机选择访问其中哪一个数据库。这种方式,您可以在SQL Azure上分布负载并减少连接不畅的机会。
另一件要注意的是SQL Azure服务器的连接更容易受到干扰,你的应用程序应该能够更好的处理它们并提供重连接的透明性。相比较传统的SQL Server环境,有若干场景可能发生连接的中断。例如,如果你离开本地网络,连接失败会发生在多个点上包括路由器、交换机、区域互联网中断等,还有SQL Azure数据库的工作方式。如果你的数据库服务器出现故障,SQL Azure将启动一个新服务器联机并恢复您的数据库。这是一个很快的过程,只用几秒钟,但任何现有连接将被中断。
【编辑推荐】