一周以前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. 重新温习,不但可以让自己对js更加的深刻认识,又能加深记忆,至此每天一次复习记录在此。

    Undefined类型,它只有一个值就是它本身,打个比方你在声明变量的时候又未对变量赋值也就是相关初始化操作,那么此刻该变量的值便是Undefined. var a//声明一个变量. console. ...

  2. jsp获取服务端的访问信息

    获取服务端访问信息 public static String getUrl(HttpServletRequest request){ String url = ""; if(req ...

  3. spring+hibernate+jpa+Druid的配置文件,spring整合Druid

    spring+hibernate+jpa+Druid的配置文件 spring+hibernate+jpa+Druid的完整配置 spring+hibernate+jpa+Druid的数据源配置 spr ...

  4. ui-router的使用

    使用时需要ui中用ui-view指令指定 如: <div ui-view></div> 首先配置注册 ui-route var mainModule = angular.mod ...

  5. javascript的面向对象编程

    面象对象编程技术的核心理念:封装.继承.多态:在一些主流的高级编程语言中,比如:C#,VB.NET,JAVA,PHP等都是很容易实现的,而如果要在javascript中实现面象对象编程,可就不那么直接 ...

  6. media queries 媒体查询使用

    media queries 翻译过来就是媒体查询,media 指的媒体类型.那么有哪些类型呢,常用的有 screen(屏幕).打印(print),个人理解就是它所在的不同终端. 常用的用法:1,< ...

  7. struts 2读书笔记-----struts2的开发流程

    一.将struts 2的lib文件夹下地commons-fileupload.jar.commons-io.jar.freemarker.jar.javassist.jar.ognl.jar.stru ...

  8. DataGrid列的合并

    /// <summary> /// DataGrid列的合并 /// 注意:1.DataGrid在绑定的时候进行分组和排序,才能让相同的行放在一起 /// 2.方法应用的时机,应该在Dat ...

  9. phpMyAdmin教程 之 创建新用户/导入/导出数据库

    盗用了被人的教程. 需要看就点击进去吧.复制过来实在是过意不去 http://www.wpdaxue.com/phpmyadmin-import-export-database.html

  10. oc 获取当前时间

    //获取当前日期 NSDate* date = [NSDate date]; NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init]; ...