一周以前Windows Azure发布了新的更新内容,主要的更新有3项:

  • 虚拟机上的SQL Server支持AlwaysOn可用性组了
  • Notification Hub商用
  • 自动缩放支持时间策略

这里的第一项要稍微解释下,那就是什么是AlwaysOn。这要从SQL Server的高可用说起。我们或许知道Azure上的SQL Database是一种PaaS服务,其最主要的一个特性就是天然的高可用设计,每个数据库实例都是由后台3个实例组成,一主两备,这样客户自己就不需要进行高可用方面的任何配置。SQL Database虽好,但是也有局限,那就是其性能和功能都有一定的限制,有时候我们不得不找一台虚拟机,在上面运行传统的SQL Server,同时也要自己配置SQL Server的高可用。SQL Server的高可用配置主要有4种方式:

1. AlwaysOn 故障转移群集实例。通俗点讲就是共享磁盘,然后通过Windows集群进行自动主备切换。这种方式是当今市场上绝大部分数据库软件采用的主备切换方式,其优点是不需要修改应用和数据库软件,只需要通过外部的集群管理器进行自动化监控和配置。其缺点也十分明显,就是配置起来太复杂,对硬件也有要求。在Azure上,由于虚拟机无法共享磁盘,因此此方法不适用

2. AlwaysOn 可用性组(就是这次宣布商用的特性)。该方法是由SQL Server软件本身实现的切换方式,其原理是数据库镜像+失效转发:主数据库将数据库日志实时(也可以异步)发送给备机,并监控每台主机状态;整个系统同时提供一个VIP作为客户端连接入口;当主数据库失效后,VIP自动指向备机。这种方法的好处是不需要共享存储也不依赖硬件,因为数据是在软件层面进行的复制,也叫Share Nothing的方式。这种方式可以支持1主4备,备机可以支持读操作,也可以用来做备份。备机还可以位于远程数据中心,实现容灾。这和Mysql的复制十分相似。不过,之前要想在Azure上进行该配置仍存在一个问题,就是Azure里面的VIP是轮询式的,不支持主备式,无法满足SQL Server主备配置的需要。于是,Azure在端点功能上增加了一个特性,就是“-DirectServerReturn ”属性。所谓DirectServerReturn,是负载均衡的一种实现机制。基本的负载均衡机制是:源端A发请求给负载均衡器F,然后转发给后台的某台服务器S,服务器处理后,返回包的路径为S->F->A。而DirectServerReturn的机制,是服务器直接将结果发给客户端,绕过负载均衡,这样可以节省一次中转,全部路径为A->F->S->A。Azure上的DirectServerReturn实现机制是:客户端A发请求给F,F广播给所有的后台服务器,然后当前的主服务器返回结果给客户端。有了这种支持,SQL Server就可以同时有多个实例接收请求,并进行响应。SQL Server的用户在Azure上就可以获得HA、DR的商业化支持了。目前Azure上只有SQL Server 2012支持该特性

3. 数据库复制。这是AlwaysOn 可用性组技术的前身。与AlwaysOn    不同的是,数据库复制只支持1主一备,而且客户端需要知道主机和备机的IP。该特性目前已经被AlwaysOn取代了

4. 日志复制。就是将SQL server的日志定期发布到其他数据库上。这种方法可以看成数据库复制的一个变种,就是将复制的周期拉长。其好处是对数据库版本没什么要求,缺点是数据更新不及时。因此,该方法适合与实时性要求低的场景,比如备份或者容灾系统

综上,要在Azure虚拟机上运行高可用的Sql server,最好采用AlwaysOn可用性组

关于Notification Hub,它是Service Bus下面的一项子服务,其主要功能是进行异构移动设备的消息通知。Windows Phone, Android和iOS都有自己的通知中心,应用要发通知消息给客户端,需要根据客户端类型分别跟微软、谷歌和苹果的消息中心通信,并且需要事先记录每个设备的唯一码。Notification Hub简化了通知的发送,应用只需要一次调用即可向不同种类的移动设备发送消息。同时,Notification Hub采用Tag进行客户端设备标记,这样应用就不需要记住每个设备的唯一码,而是由Notification Hub来维护,应用可以向某个Tag的用户广播消息,十分适合大规模用户的消息推送(百万量级)

最后一个,关于自动缩放,新增的功能是可以按照不同时间段定义缩放策略。比如白天的策略是运行4-8个实例,晚上是2-3个。这样可以对资源使用进行更为精细化的控制

此次更新的全部信息,可以参考

http://weblogs.asp.net/scottgu/archive/2013/08/12/windows-azure-general-availability-of-sql-server-always-on-support-and-notification-hubs-autoscale-improvements-more.aspx

Windows Azure功能更新:SQL Server AlwaysOn和Notification Hub 正式商用的更多相关文章

  1. Windows Azure功能更新:弹性伸缩(autoscale)、监控报警、移动服务及网站服务商用、新的虚拟机镜像

    Windows Azure功能又更新了.此次更新包括1项重要更新和两个功能更新: 重要更新:云服务.网站支持按策略进行弹性伸缩 功能更新:两个预览版的服务(网站和移动)进入商用,虚拟机服务支持SQL ...

  2. Windows Azure功能更新: SDK 2.1发布,Traffic Manager集成

    最近,Windows Azure又进行了更新 Windows Azure SDK 2.0发布没多久,2.1版(for .NET)就在今天发布了.2.1版本在管理功能上进行了重大改进,包括Visual ...

  3. Windows Azure功能更新:Oracle软件正式登陆Azure了

    今天,Windows Azure国际版发布了新的功能:全面支持Oracle软件,包括Oracle Linux, Oracle 12c数据库,Weblogic 11g和12c,Oracle JDK 6和 ...

  4. 宣布正式发布 Windows Azure Notification Hub,新增 SQL Server AlwaysOn 可用性组侦听器支持

    今天,我们非常高兴地宣布,针对使用 Windows Azure 的移动和企业开发人员推出一些新功能.这些新功能可以减少构建移动应用程序的开发时间和成本,并能帮助企业开发人员实现高可用性和全球业务连续性 ...

  5. 转载文章:Windows Azure 七月份更新:SQL 数据库、流量管理器、自动伸缩、虚拟机

    转载文章:Windows Azure 七月份更新:SQL 数据库.流量管理器.自动伸缩.虚拟机 今天上午,我们发布了一些重大的 Windows Azure 更新.这些新的增强功能包括: · SQL 数 ...

  6. SQL Server Alwayson架构下 服务器 各虚拟IP漂移监控告警的功能实现 -2(虚拟IP视角)

    1.需求描述 我们知道Windows Cluster 都是多节点的,当虚拟IP漂移的时候,一般都是从一个节点漂移到另外一个节点.如果可以及时捕捉到旧节点信息是什么.新节点信息是什么对我们提供高可用的数 ...

  7. 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...

  8. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  9. (转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    原文地址:  http://www.cnblogs.com/lyhabc/p/4682028.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集 ...

随机推荐

  1. c# 小数取整

    向上取整 math.ceiling() = math.ceiling( math.ceiling( 向下取整 math.) = math. math. C#取整函数实例应用详解 C#取整函数的相关使用 ...

  2. Effective Java 41 Use overloading judiciously

    The choice of which overloading to invoke is made at compile time. // Broken! - What does this progr ...

  3. 如何添加localizable.strings本地化

    1.在Supporting Files文件夹右键,NewFile… -> iOS -> Resources -> String Files,命名为Localizable.string ...

  4. Sqli-labs less 26

    Less-26 TIPS:本关可能有的朋友在windows下无法使用一些特殊的字符代替空格,此处是因为apache的解析的问题,这里请更换到linux平台下. 本关结合25关,将空格,or,and,/ ...

  5. ASP.NET MVC路由(5)

    ASP.NET MVC路由(五) 前言 前面的篇幅讲解了MVC中的路由系统,只是大概的一个实现流程,让大家更清晰路由系统在MVC中所做的以及所在的位置,通过模糊的概念描述.思维导图没法让您看到路由的实 ...

  6. System.map详解

    system.map内容格式为:线性地址类型符号 具体内容如下: 00100000 A phys_startup_32 c0100000 T startup_32 c0100000 A _text   ...

  7. 项目需求分析与建议-NABCD模型

    N(Need 需求) 首先我们的创意解决了现有阶段学校查空余教师的问题,充分解决了同学们上自习却找不到教室的苦衷,同时也会适当的拓展一些适当的学习计时功能或者每日一语等等,来帮助同学们来控制好学习时间 ...

  8. Study 3 —— 表格

    表格基本格式: <table> <tr> <td></td> <td></td> </tr> <tr> ...

  9. [20170629]带过滤的复制项UI操作导致订阅全部初始化问题

    [问题] 带过滤的复制项UI操作导致订阅全部初始化,但是想不全部初始化,只初始化对应的复制项   [解决] 1.如果修改过滤项,可以直接执行,然后生成快照: -- Adding the article ...

  10. python—变量和简单数据类型

    1.变量 在程序中可随时修改变量的值,python始终记录变量的最新值 变量名:必须以字母或者下划线开头,只能包含字母数字和下划线,建议使用下划线+小写字母的方式命名,不能为函数名和python关键字 ...