`
sslaowan
  • 浏览: 379625 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对于负载均衡的理解

 
阅读更多

看了好多关于Nginx,LVS等的文章,跟很多朋友讨论,自己的项目组也实现了一个demo,今天终于搞清了关系。

LVS是一个四层负载均衡,四层就是OSI模型的第四层,TCP/IP层,它是根据cip,cport,sip,sport等做负载均衡,并不理解HTTP等请求内容(因为那是第七层应用层管的事),所以对于海量请求,最前面比较适合搞个LVS做负载,分发请求

Nginx是一个有很多功能的Server,它首先是一个反向代理Web服务器,然后可以做七层负载均衡器,还有重写URL,静态缓存等功能。由于其工作在应用层,因此能够理解HTTP协议,因此可以通过URL做分发,可以实现动静分离,比如把动态请求转给tomcat,相当于apache服务器的mod_jk。其可以自己处理静态内容。当然这都是因为其可以通过指定location参数配置的,你想实现怎么样的分发都可以。其还有内置模块基于ip分发。其还支持健康检查,有机器挂了就自动不再发到那台机器了。

KeepAlived是用来心跳负载均衡器的,这只有当负载均衡器是集群时才用到的,当一个负载均衡器挂了,可以无缝切换到其他负载均衡器上。

Session保持依靠两个机制,一个是session sticky,基于nginx使用它的一个插件jvm_route,LVS的看来应该是采用source hash这种策略。另外就是当后面的应用服务器挂了,session怎么办,一种方案是session复制,tomcat自己的方式;一种方案是共享存储session,可以是memcache等,我们选用了Terracotta,优点是对代码没有侵入性,不需要实现序列化接口,堆级复制,对变化同步,跟memcache比性能会差些,差多少没测过。

Squid静态缓存服务器,现在Nginx基本可以搞定这个事情了,效率甚至更高。

 

所以大网站的策略是 LVS+Squid+Nginx+Memcache+Tomcat+Terracotta

Memcache或是Redis这种东东来替代数据库加速数据访问。

LVS高效的负载均衡到各个Nginx上,Ngtinx再分发,做动静分离。

对于大量读的网站,大多数请求估计到不了Tomcat,都被Nginx转到静态页面缓存的服务器上去了。

CDN技术可以帮助网站路由到离用户最近的CDN节点,读取上面的内容。

这些都是针对大量读的网站,读写分离,对并发事务的锁要求非常低,并发事务并不可怕,可怕的是锁。

 

下面是一个大牛的blog,讲了好多经验,人家都是处理数十亿pv的

http://blog.sina.com.cn/s/blog_466c66400100hw0i.html

下面是将Redis的

http://timyang.net/data/redis-misunderstanding/

分享到:
评论
1 楼 heroroby 2012-03-29  
good

相关推荐

    c#源码 Socket 负载均衡 实例

    通过对源代码的阅读和理解,你可以了解到如何在C#中实现Socket通信和负载均衡的具体细节,以及如何设计和优化这类系统。 总的来说,C#源码Socket负载均衡实例是一个有价值的教育资源,可以帮助开发者掌握网络编程和...

    导致内部负载均衡器间歇性丢包或负载不均衡的常见因素-Bing1

    在IT领域,尤其是在云服务和网络架构中,负载均衡器是一个关键组件,它负责分散流入的网络流量到多个后端服务器,以确保高可用性和性能。然而,有时可能会遇到内部负载均衡器出现间歇性丢包或负载不均衡的问题。以下...

    负载均衡技术文档

    本技术文档集合涵盖了多个负载均衡的方面,旨在帮助学习者深入理解其原理、实现方式以及应用实践。 一、负载均衡的概念 负载均衡是一种策略,用于将工作负载分布到多个计算资源,如服务器、网络设备或存储设备,以...

    SAP 应用服务负载均衡的实现

    本文将详细介绍SAP应用服务负载均衡的具体实现方法,帮助读者理解其原理及配置步骤。 #### 二、SAP应用服务负载均衡的基本概念 负载均衡是指将网络请求或数据流量合理地分发到多个服务器或服务节点上进行处理,以...

    H3C 负载均衡设备典型配置案例集手册.pdf

    《H3C 负载均衡设备典型配置案例集手册》是一本专为网络规划人员、现场技术支持与维护人员以及...对于处理高流量、高并发的网络环境,正确配置和使用负载均衡设备至关重要,而这本手册无疑为此提供了宝贵的实践指导。

    win7 双网络负载均衡

    总之,Windows 7双网络负载均衡是一项能显著提升网络性能的技术,但需要深入理解网络原理和RRAS服务的配置。通过以上步骤,你可以有效地在Windows 7系统上实现多网络接口的负载均衡,从而提高系统的网络稳定性和可靠...

    opensips与两台freeswitch负载均衡

    在构建大型VoIP系统时,负载均衡是至关重要的,它能确保服务的高可用性和可扩展性。"opensips与两台freeswitch负载均衡"的主题聚焦于如何使用OpenSIPS作为负载均衡器来管理两台Freeswitch服务器,以实现Freeswitch的...

    1. Camstar负载均衡配置.docx

    首先,我们要理解负载均衡的基本原理。负载均衡通过分配网络流量到多个服务器,避免单个服务器过载,确保服务的连续性和高效性。在Camstar系统中,这一过程可能涉及到工作负载的分配、故障转移以及性能监控。 配置...

    A10负载均衡模拟器 SoftAX 学习A10必备

    3. **教学与实验**:对于学习者,SoftAX提供了一个安全的环境来练习配置和管理负载均衡策略,理解如何应对各种网络流量场景,以及如何优化系统性能。 4. **运维模拟**:对于运维人员,SoftAX可以帮助他们在实际环境...

    java 简易负载均衡例子

    理解这个协议对于正确地实现负载均衡器至关重要。 `src`目录包含源代码,是整个项目的核心部分。我们可以期待找到一个或多个类,它们实现了负载均衡逻辑,可能包括以下组件: 1. `ServerSelector`:使用Java的...

    弘积负载均衡简易运维手册

    3. **配置虚拟服务(类似F5 poolmembers)**:虚拟服务是负载均衡器对外提供的“服务”,可以理解为一个IP地址和端口的组合,它可以映射到一个或多个pool members,支持L4(四层,基于TCP/UDP)和L7(七层,基于应用...

    实用负载均衡技术:

    负载均衡技术是现代软件工程和架构设计中的关键组成部分,尤其对于构建高可用、高性能的网站系统至关重要。在本文中,我们将深入探讨负载均衡的基本概念、重要性以及如何通过实际应用来优化网站性能。 首先,我们...

    基于SQL Server Alwayson技术的负载均衡研究.pdf

    SQL Server Always On是微软在SQL Server 2012中...理解和熟练掌握这一技术,对于优化数据库架构、提升业务连续性具有重要意义。在实践中,应结合具体业务场景,灵活运用读写分离、监控管理等策略,以实现最佳效果。

    负载均衡策略深入剖析

    本文深入探讨了各种负载均衡策略,帮助读者理解如何根据不同的场景和需求选择合适的策略。 首先,负载均衡策略的核心在于算法和网络状态监测。轮循均衡是最基础的策略,它将请求按顺序分配给服务器,适用于服务器...

    Java集群与负载均衡

    Java集群与负载均衡是构建大型、高可用性Web应用程序的关键技术。它们确保系统能够处理大量并发请求,并在硬件故障或高负载...在实际项目中,理解并熟练掌握这些技术,对于提升系统整体性能和用户体验具有重要意义。

    weblogic8.1集群负载均衡

    4. **自定义负载均衡策略**:对于特殊需求,开发人员可以编写自定义负载均衡器实现,这需要对WebLogic API有深入理解。 在设置WebLogic 8.1集群负载均衡时,需要注意以下几点: 1. **服务器实例配置**:所有服务器...

    负载均衡工作原理

    首先,让我们理解负载均衡的核心概念。当大量用户同时访问一个网站或应用时,单台服务器可能会不堪重负,导致响应变慢甚至崩溃。负载均衡器就是解决这个问题的关键设备,它充当了网络流量的“交通警察”,智能地分配...

Global site tag (gtag.js) - Google Analytics