负载均衡一直是一个比较重要的议题,几乎所有的Azure案例或者场景都不可避免,鉴于经常有客户会问,所以笔者觉得有必要总结一下。

Azure提供的负载均衡机制,按照功能,可以分为三种:Azure Load Balancer    Application Gateway     Traffic Manager

首先,我们来介绍第一个Azure Load Balancer  简称为 LB

该负载均衡机制其实是基于OSI 4 层参考模型来实现的,工作在传输层,在ASM里,LB是隐藏在云服务后面的,而在ARM里面,LB是一个单独的服务,但仍是免费的

LB有如下几个特点

1.工作在OSI参考模型的4层即应用层

2.可以支持任何协议,但是在Azure中主要针对基于TCP/UDP协议

3.服务端点(Endpoint)为Azure虚拟机或者Cloud Service Role

4.同时支持公网负载均衡和内网(Vnet)负载均衡

5.通过Probe监控加入LB的Endpoint

6.支持固定的IP地址

7.负载均衡的默认模式是基于5元组的(源IP ,目的IP ,源端口,目的端口,protocol)

8.会话保持的方式:可以改为2元组(源IP,目的IP),也可以改为3元组(源IP,目的IP,protocol)

9.健康检测的机制,默认侦测间隔15s,最短为5s,连续两次健康检测失败,则把该节点从负载均衡器中移除,同时也支持用户自定义的侦测

10.不支持SSL offloading

接下来,来介绍 ApplicationGateway

从上面的总结我们可以看出Azure的LB是基于传输层的,但是针对应用层的负载均衡而言,LB很显然就显得无能为力了,所以我们需要更高级的负载均衡机制,我们来看下面两个图

图一

图二

以上的两个示例都是Azure LB无法满足的,但是Application Gateway可以做到,它类似于反向代理服务,把客户端的请求发送到后端的服务器

该负载均衡有如下几个特点

1.ApplicationGateway是七层的负载均衡,工作在应用层

2.支持的协议为HTTP/HTTPS

3.服务的端点Endpoint为任意的公网IP地址或者内网IP地址

4.同时支持公网负载均衡和内网(Vnet)负载均衡

5.通过Probe监控Endpoint

6.不支持固定的IP地址

7.负载均衡模式为轮询(round robin)以及URL路由

8.健康检测间隔为30s,连续5次健康检测失败,则把节点从Application Gateway中移除,支持用户自定义的侦测

9.基于cookie的会话保持,URL路由

10.支持SSL offloading

现在看以看出来,ApplicationGateway有如下几个重要的作用

1.提供Web ApplicationGateway Firewall(预览)(WAF),可以保护Web应用程序免受常见的Web攻击,比如SQL注入,跨站点脚本攻击和会话劫持

2.提供7层负载均衡,例如HTTP负载均衡

3.通过使用cookie的会话保持功能可以使用户的会话保持在同一个Azure后端服务器

4.关于SSL offload功能,很多人不是很理解,其实是这样的,当我们不使用SSL offload功能时,SSL加密与解密应用会消耗大量的服务器资源,这就是为什么从HTTP到HTTPS部署后,服务器的性能和处理能力大幅下降的原因,如果我们使用了SSL Offload,Internet用户访问ApplicationGateway的流量是HTTPS加密的,但是ApplicationGateway访问后端的web server是通过HTTP方式,这样就有如下的几个优点

(1)降低服务器的负载,因为我刚刚说了SSL处理非常消耗服务器的性能

(2)提升SSL处理能力

(3)降低管理员操作复杂性,无需管理和配置多个服务器的证书,只要在前端的ApplicationGateway上实现即可

(4)提升应用安全性,将加密的HTTPS解密为明文的HTTP后,可根据请求/响应内容等设置多种策略

(5)ApplicationGateway支持端到端的SSL加密

(6)可以实现基于URL的路由(如图一),可以实现多站点路由(如图二)

(7)支持websocket,健康侦测,支持高级诊断功能

就目前而言,ApplicationGateway提供了三种实例大小,small medium large,其中small只适合开发测试环境

并且提供了两种服务类型,WAF(web application firewall)和Standard,一个订阅最多创建50个ApplicationGateway,每个ApplicationGateway最多有10个实例,每个ApplicationGateway可以有20个HTTP侦听器(listener)

其它关于ApplicationGateway的限制条件请参考官网地址

Application Gateway参考性能表

接下来介绍Traffic Manager 它的功能类似于smart dns

该负载均衡有如下的几个特点

1.该负载均衡是针对DNS的负载均衡

2.支持任何协议,需要HTTP Endpoint进行监控

3.服务端点Endpoint可以为,Azure虚拟机,cloud service 以及Azure web app或者其它外部Endpoint

4.只支持公网负载均衡

5.通过HTTP/HTTPS Get监控Endpoint

Azure的负载均衡机制的更多相关文章

  1. nginx 健康检查和负载均衡机制分析

    nginx 是优秀的反向代理服务器,这里主要讲它的健康检查和负载均衡机制,以及这种机制带来的问题.所谓健康检查,就是当后端出现问题(具体什么叫出现问题,依赖 于具体实现,各个实现定义不一样),不再往这 ...

  2. 分析NGINX 健康检查和负载均衡机制

    nginx 是优秀的反向代理服务器,这里主要讲它的健康检查和负载均衡机制,以及这种机制带来的问题.所谓健康检查,就是当后端出现问题(具体什么叫出现问题,依赖于具体实现,各个实现定义不一样),不再往这个 ...

  3. Ribbon 负载均衡机制

    Ribbon 提供了几个负载均衡的组件,其目的就是让请求转给合适的服务器处理,因此,如何选择合适的服务器变成了负载均衡机制的核心,Ribbon 提供了如下负载均衡规则: RoundRobinRule: ...

  4. octavia的实现与分析(一)·openstack负载均衡的现状与发展以及lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比

    [负载均衡] 大量用户发起请求的情况下,服务器负载过高,导致部分请求无法被响应或者及时响应. 负载均衡根据一定的算法将请求分发到不同的后端,保证所有的请求都可以被正常的下发并返回. [主流实现-LVS ...

  5. LINUX内核CPU负载均衡机制【转】

    转自:http://oenhan.com/cpu-load-balance 还是神奇的进程调度问题引发的,参看Linux进程组调度机制分析,组调度机制是看清楚了,发现在重启过程中,很多内核调用栈阻塞在 ...

  6. Azure 提供负载均衡(一)Azure Traffic Manager 为我们的Web项目提供负载均衡

    一,引言 上一篇讲到我们将自己的Net Core Web 项目部署到 Azure 的 Web App 的一项 pass 服务,假如随着项目的日益增长的访问量,之前部署到单节点的应用可能无法保证其稳定性 ...

  7. openstack octavia的实现与分析(一)openstack负载均衡的现状与发展以及lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比

    [负载均衡] 大量用户发起请求的情况下,服务器负载过高,导致部分请求无法被响应或者及时响应. 负载均衡根据一定的算法将请求分发到不同的后端,保证所有的请求都可以被正常的下发并返回. [主流实现-LVS ...

  8. HDFS 02 - HDFS 的机制:副本机制、机架感知机制、负载均衡机制

    目录 1 - HDFS 的副本机制 2 - HDFS 的机架感知机制 3 - HDFS 的负载均衡机制 参考资料 版权声明 1 - HDFS 的副本机制 HDFS 中的文件,在物理上都是以分块(blo ...

  9. 深入剖析 RocketMQ 源码 - 负载均衡机制

    RocketMQ作为一款流行的消息中间件在各大互联网应用广泛,本文主要分析RocketMq在消息生产和消费过程中的负载均衡机制,并创新提出消费端负载均衡策略的改写以实现固定IP消费的可能.

随机推荐

  1. 解析opencv中Box Filter的实现并提出进一步加速的方案(源码共享)。

    说明:本文所有算法的涉及到的优化均指在PC上进行的,对于其他构架是否合适未知,请自行试验. Box Filter,最经典的一种领域操作,在无数的场合中都有着广泛的应用,作为一个很基础的函数,其性能的好 ...

  2. ongl(原始类型和包装类型)

    原始类型和包装类型 //首先创建两个实体类 user 和 address user中包含address package cn.jbit.bean; public class User { //用户类 ...

  3. Linux虚拟机突然网络不能用了但是主机能ping㣈

    虚拟ping主机时出现: linux network is unreachable 搞了好久搞不定,之前都是好的 突然这样了. 解决办法: 第一步: "虚拟机设置"中的" ...

  4. BZOJ 4614 【Wf2016】 Oil

    题目链接:Oil 感觉同时几线作战有点吃不消啊-- 这道题有一个显然的结论,那就是最优的直线一定过某条线段的端点. 仔细想想很有道理.如果最终的直线没有过线段的端点的话,那么这条直线就一定可以平移,直 ...

  5. 8个排序算法——java

    public static void radixsort(int[] a){ int max=a[0]; for(int i=1;i<a.length;i++){ if (max<a[i] ...

  6. [LeetCode] Flatten Nested List Iterator 压平嵌套链表迭代器

    Given a nested list of integers, implement an iterator to flatten it. Each element is either an inte ...

  7. [LeetCode] Closest Binary Search Tree Value II 最近的二分搜索树的值之二

    Given a non-empty binary search tree and a target value, find k values in the BST that are closest t ...

  8. [网站性能1]对.net系统架构改造的一点经验和教训

    文章来源:http://www.admin10000.com/document/2111.html 在互联网行业,基于Unix/Linux的网站系统架构毫无疑问是当今主流的架构解决方案,这不仅仅是因为 ...

  9. vue.js学习(第一课)

    学习资料 来自台湾小凡! vue.js是javascript的一个库,只专注于UI层面,核心价值永远是 API的简洁. 第一课: 不支持IE8. 1.声明式渲染: el元素的简称 element : ...

  10. 【CodeVS 1288】埃及分数

    http://codevs.cn/problem/1288/ loli秘制面向高一的搜索,好难啊QAQ 我本来想按照分母从大到小搜,因为这样分母从小到大枚举到的第一个可行方案就是最优方案. 但貌似会T ...