[转][网站、云服务与虚拟机]弄清负载均衡的机制

转自:http://blog.csdn.net/shaunfang/article/details/9091491

Azure为网站、云服务和虚拟机都提供了免费的负载均衡能力。关于负载均衡我们需要注意的一点就是它对Session的处理。一般来说,传统的负载均衡器有一种叫session粘滞(sticky)的机制,也就是会根据用户的session信息将用户请求转发到固定的一台机器上,这样,如果应用程序在服务器端存储session信息,那么用户与服务器交互就会顺畅,否则,就会发生用户session丢失和应用逻辑异常

在Azure上,云服务和虚拟机的负载均衡器都是纯网络层面的,其均衡机制是轮流将请求发给后端的服务器,不支持session粘滞. 这就要求后台服务器是无状态的,也就是无论将客户请求发给任何一个服务器,都可以得到正确的处理。如果现有的应用是有状态的,那么有两种解决办法:

  1. 将session信息在所有服务器间共享。具体实现方式包括:分布式缓存(比如Memcache,Azure Caching), session持久化(.NET和Java都支持用数据库存储session信息,而Azure还支持用Cache和Azure存储持久化.NET session信息: http://blogs.msdn.com/b/cie/archive/2013/05/17/session-state-management-in-windows-azure-web-roles.aspx)

  2. 在虚拟机上自行配置负载均衡集群,比如squid(linux), IIS ARR(windows). 微软的MSOpenTech团队提供了一个自动配置IIS ARR的方法:https://github.com/MSOpenTech/WindowsAzureToolkitForEclipseWithJava/tree/master/Utils/ARRConfigurationAgent。它原本是为了配置云服务里面的Java集群的,也可以用来配置其他IIS集群

网站服务的负载均衡稍有不同,它的负载均衡是由IIS ARR实现的,因此它原生支持session粘滞。其实现原理是,在每个响应里面添加ARRAffinity这个cookie,这样,下次同一个用户的请求就会被识别,然后发送到上次的服务器上。也就是说,不论应用是否主动写入cookie或是存取session,IIS都会为每个用户保持服务器的绑定关系。

[转][网站、云服务与虚拟机]弄清负载均衡的机制

时间: 2024-09-29 04:50:55

[转][网站、云服务与虚拟机]弄清负载均衡的机制的相关文章

Azure 网站、云服务和虚拟机比较

最后更新时间(英文版):09/24/2014 最后更新时间(中文版):04/11/2015 Azure 提供几种方式托管 web 应用程序,如 Azure 网站.云服务和虚拟机.查看这些不同的选项后,您可能不确定哪一种最适合需求,或可能有不清楚的概念,如 IaaS 对比 PaaS.这篇文章可帮助您了解选项,并帮助您为自己 web 方案做出正确的选择.尽管所有三个选项允许您在 Azure 中运行高度可扩展的 web 应用程序,但差异可帮助指导您的决定. 在许多情况,Azure 网站是最佳的选择.它

Microsoft Azure系列之九 实现基于Iaas云服务的虚机负载平衡

如果需要对一个云服务下的不同虚拟机实现负载均衡,可以将Public Port的消息通过负载均衡转发到每个VM,从而实现请求的自动负载均衡. 具体拓扑如下: 我们可以对之前创建的这两台虚拟机,设置80端口的负载均衡. 注意:Azure的负载均衡目前只支持四层,不能保留Session. 负载均衡的算法是Azure设置好的,不能修改.算法主要依赖于五元组(source IP, source port, destination IP, destination port, protocol type).

[转]域名负载均衡 ----结合云解析实现跨地域负载均衡

https://help.aliyun.com/document_detail/42788.html 结合云解析实现跨地域负载均衡 更新时间:2017-07-05 17:40:10   分享: 负载均衡从其应用的地理结构上分为本地负载均衡和全局负载均衡.本地负载均衡是指对同地域(Region)的服务器群做负载均衡,全局负载均衡是指对分别放置在不同地域(Region).有不同网络结构的服务器群间作负载均衡. 产品架构 如上图所示,您可在不同地域下部署“负载均衡+云服务器组”,上层使用云解析服务实现

Centos7+Nginx+Keepalived实现Apache服务的高可用&负载均衡

Centos7+Nginx+Keepalived实现Apache服务的高可用&负载均衡 今天是2017年的第一天,昨天也就是2016年的最后一天,我尝试部署了Centos7+Nginx+Keepalived实现WEB服务的高可用负载均衡服务,终于在2017年的第一天前完成了,所以在此分享给有需要的朋友:说到负载均衡,其实在linux下有很多服务可以实现,比如nginx.haproxy.lvs等服务,当前我们在前面的文章有介绍过了,但是对于高可用服务,我们在linux下最常见也是应用最多的是Kee

Spring Cloud Ribbon---微服务调用和客户端负载均衡

前面分析了Eureka的使用,作为服务注册中心,Eureka 分为 Server 端和 Client 端,Client 端作为服务的提供者,将自己注册到 Server 端,Client端高可用的方式是使用多机部署然后注册到Server,Server端为了保证服务的高可用,也可以使用多机部署的方式.前面简单搭建了Eureka Client 和 Server,然后将Client成功注册到 Server,本节我们将来看看如何调用Eureka服务,在多机部署情况下如何保证负载均衡.Spring Clou

实现跨云应用——基于DNS的负载均衡

“公有云可以作为传统IT资源的延展,能帮助客户应对不断变化的需求”——这是我们在向客户介绍公有云产品时经常说的一句话.我们来看一个具体的需求: 某客户有一个web站点,部署在自有的数据中心(on-premises),在某些未计划高峰时期(假设是促销季),现有数据中心的基础设施资源不足以支撑突增的访问量.在这种情况下,公有云如何帮助客户拓展本地数据中心的处理能力从而满足峰值业务需求? 这个嘛,easy,客户只要将现有的web站点迁移到公有云上可以啦,什么横向扩展.按需付费.冗余存储等一大堆“云特性

Nginx提供代理服务(网站代理),nginx实现负载均衡集群和高可用集群、nginx实现网站动静页面分离

静态页面:用静态编程语言编写的页面为静态页面,支持静态页面的语言为,css html  xml,不手动改变源代码,页面就不会改变. 动态页面:用动态编程语言编写的页面为动态页面,支持动态页面的语言有,java php .net,根据用户访问的时间和用户的不同显示不同的页面. nginx网站服务代理 实验(一)实验目的:nginx实现反向代理代替公网用户访问私网的web页面. 实验环境: 内网web服务器: IP地址 :192.168.1.1  主机名:fanlj nginx代理服务器:IP地址:

Docker入门 三 用服务来扩展和负载均衡你的应用

我们希望扩展和负载均衡自己的应用,为了达到这个目的,需要要分布式应用中使用更高一级的服务. 关于服务 对于分布式系统而言,不同的组成部分叫做"服务".例如,对于一个视频分享网站,它可能包含了一个往数据库存储的服务,一个在后台格式转换用户上传的东西的服务,一个负责前端展示的服务. 服务实际上就是生成中的容器,就从业务方面而言.一个服务只能运行一个镜像,但是它能控制容器运行的方式,比如使用什么网络端口,使用多少个容器副本等等.扩展一个服务,可以通过改变应用的每部分实例的数量,还可以通过在服

网络服务高可用及负载均衡2——CentOS7系统网络组

前几天刚给大家分享过CentOS6系统下如何实现双网卡绑定同一IP以达到网络负载均衡以及高可用性.很多人肯定也在想,在CentOS7系统下如何实现了,那么今天就给大家大家分享一下如何使用CentOS7系统的网络组来实现同样的效果了.网络组是将多个网卡聚合在一起,从而实现冗错和提高吞吐量的一种技术手段,但它不同于旧版中bonding技术,提供更好的性能和扩展性,网络组由内核驱动和teamd守护进程实现.接下来就给大家展示一下如何实现. 一.环境需求 交换机设备:两台支持动态链聚合功能的交换机或者一