热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于即时通讯:im即时通讯开发高性能HTTP服务端的负载均衡

在一个典型的高并发、大用户量的Web互联网零碎的架构设计中,对HTTP集群的负载平衡设计是作为高性能系统优化环节中必不可少的计划。HTTP负载平衡的实质上是将

在一个典型的高并发、大用户量的Web互联网零碎的架构设计中,对HTTP集群的负载平衡设计是作为高性能系统优化环节中必不可少的计划。HTTP负载平衡的实质上是将Web用户流量进行平衡减压,因而在互联网的大流量我的项目中,其重要性显而易见。

即时通讯网注:本文中所提及的HTTP负载平衡计划和算法,并不齐全实用IM即时通讯Socket长连贯的负载平衡,因为IM长连贯、有状态的个性,跟HTTP这种短连贯、无状态的特色是矛盾的,所以请勿自觉套用。但,一个残缺的IM零碎是由HTTP短连贯+IM长连贯组成,因此本文内容虽不能套用于IM长连贯的负载平衡计划,但能够用于您IM的高并发、大用户量的HTTP短连贯的方案设计。

什么是负载平衡?

晚期的互联网利用,因为用户流量比拟小,业务逻辑也比较简单,往往一个单服务器就能满足负载需要。随着当初互联网的流量越来越大,略微好一点的零碎,访问量就十分大了,并且零碎性能也越来越简单,那么单台服务器就算将性能优化得再好,也不能撑持这么大用户量的拜访压力了,这个时候就须要应用多台机器,设计高性能的集群来应答。

那么,多台服务器是如何去平衡流量、如何组成高性能的集群的呢?

此时就须要请出 「负载均衡器」 入场了。

负载平衡(Load Balancer)是指把用户拜访的流量,通过「负载均衡器」,依据某种转发的策略,平均的散发到后端多台服务器上,后端的服务器能够独立的响应和解决申请,从而实现扩散负载的成果。负载平衡技术进步了零碎的服务能力,加强了利用的可用性。

支流负载平衡计划有几种?

目前市面上最常见的负载平衡技术计划次要有三种:

1)基于DNS负载平衡;

2)基于硬件负载平衡:比方F5

3)基于软件负载平衡:比方Nginx、Squid。

三种计划各有优劣,DNS负载平衡能够实现在地区上的流量平衡,硬件负载平衡次要用于大型服务器集群中的负载需要,而软件负载平衡大多是基于机器层面的流量平衡。在理论场景中,这三种是能够组合在一起应用。

基于DNS来做负载平衡其实是一种最简略的实现计划,通过在DNS服务器上做一个简略配置即可。

其原理就是:当用户拜访域名的时候,会先向DNS服务器去解析域名对应的IP地址,这个时候咱们能够让DNS服务器依据不同地理位置的用户返回不同的IP。比方北方的用户就返回咱们在广州业务服务器的IP,南方的用户来拜访的话,我就返回北京业务服务器所在的IP。

在这个模式下,用户就相当于实现了依照「就近准则」将申请分流了,既加重了单个集群的负载压力,也晋升了用户的访问速度。

应用DNS做负载平衡的计划,人造的劣势就是配置简略,实现老本非常低,无需额定的开发和保护工作。

然而它也有一个显著的毛病:当配置批改后,失效不及时。这个是因为DNS的个性导致的,DNS个别会有多级缓存,所以当咱们批改了DNS配置之后,因为缓存的起因,会导致IP变更不及时,从而影响负载平衡的成果。

另外,应用DNS做负载平衡的话,大多是基于地区或者罗唆间接做IP轮询,没有更高级的路由策略,所以这也是DNS计划的局限所在。即时通讯聊天软件开发能够征询蔚可云。

硬件的负载平衡那就比拟牛逼了,比方赫赫有名的 F5 Network Big-IP,也就是咱们常说的 F5,它是一个网络设备,你能够简略的了解成相似于网络交换机的货色,齐全通过硬件来抗压力,性能是十分的好,每秒能解决的申请数达到百万级,即 几百万/秒 的负载,当然价格也就十分十分贵了,十几万到上百万人民币都有。

因为这类设施个别用在大型互联网公司的流量入口最前端,以及政府、国企等不缺钱企业会去应用。个别的中小公司是不舍得用的。

采纳 F5 这类硬件做负载平衡的话,次要就是省心省事,买一台就搞定,性能弱小,个别的业务不在话下。而且在负载平衡的算法方面还反对很多灵便的策略,同时还具备一些防火墙等平安性能。然而毛病也很显著,一个字:贵。

软件负载平衡是指应用软件的形式来散发和平衡流量。软件负载平衡分为7层协定 和 4层协定。

网络协议有七层,基于第四层传输层来做流量散发的计划称为4层负载平衡,例如 LVS;而基于第七层应用层来做流量散发的称为7层负载平衡,例如 Nginx。这两种在性能和灵活性上是有些区别的。

基于4层的负载平衡性能要高一些,个别能达到 几十万/秒 的处理量,而基于7层的负载平衡处理量个别只在 几万/秒 。

基于软件的负载平衡的特点也很显著,便宜。在失常的服务器上部署即可,无需额定洽购,就是投入一点技术去优化优化即可,因而这种形式是互联网公司中用得最多的一种形式。

罕用的平衡算法有哪些?

下面讲完了常见的负载平衡技术计划,那么接下来咱们看一下,在理论计划利用中,个别能够应用哪些平衡算法?

次要的平衡算法有:

1)轮询策略;

2)负载度策略;

3)响应策略;

4)哈希策略。


推荐阅读
  • 负载均衡基础概念与技术解析
    随着互联网应用的不断扩展,用户流量激增,业务复杂度显著提升,单一服务器已难以应对日益增长的负载需求。负载均衡技术应运而生,通过将请求合理分配到多个服务器,有效提高系统的可用性和响应速度。本文将深入探讨负载均衡的基本概念和技术原理,分析其在现代互联网架构中的重要性及应用场景。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • Nginx不仅是一款轻量级的高性能Web服务器,还具备出色的负载均衡和反向代理功能。它支持复杂的正则匹配规则、动静内容分离以及灵活的URL重写功能,使得配置和管理更加便捷高效。此外,Nginx提供了多种负载均衡算法,如轮询、加权轮询、最少连接数等,以满足不同应用场景的需求。 ... [详细]
  • 目录结构如下:Nginx基础知识NginxHTTP服务器的特色及优点Nginx的主要企业功能Nginx作为web服务器的主要应用场景包括:Nginx的安装安装环境 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 考前准备方面,我的考试时间安排在上午11点至12点,只需提前20分钟到达考场的接待休息区即可。由于我居住在福田区,交通便利,可以选择多种方式前往考场。为了确保顺利通过考试,我建议考生提前熟悉考试流程和环境,并合理规划出行时间,以保持良好的心态和状态。此外,考前复习应注重理论与实践相结合,多做模拟题,加强对重点知识点的理解和掌握。 ... [详细]
  • 西北工业大学作为陕西省三所985和211高校之一,虽然在农业和林业领域不如某些顶尖院校,但在航空航天领域的实力尤为突出。该校的计算机科学专业在科研和教学方面也具有显著优势,是考研的理想选择。 ... [详细]
  • ZeroMQ在云计算环境下的高效消息传递库第四章学习心得
    本章节深入探讨了ZeroMQ在云计算环境中的高效消息传递机制,涵盖客户端请求-响应模式、最近最少使用(LRU)队列、心跳检测、面向服务的队列、基于磁盘的离线队列以及主从备份服务等关键技术。此外,还介绍了无中间件的请求-响应架构,强调了这些技术在提升系统性能和可靠性方面的应用价值。个人理解方面,ZeroMQ通过这些机制有效解决了分布式系统中常见的通信延迟和数据一致性问题。 ... [详细]
  • 生成树协议(STP)由IEEE 802.1D-1998标准定义,主要用于防止网络中的环路问题,但其收敛速度较慢,不适用于需要快速恢复的环境。为了解决这一问题,快速生成树协议(RSTP)和多生成树协议(MSTP)应运而生。RSTP在IEEE 802.1w中定义,显著提高了网络的收敛速度,特别是在点对点链路和边缘端口上表现优异。MSTP则进一步扩展了RSTP的功能,支持多个生成树实例,能够更好地实现负载均衡和资源优化。这些协议在现代网络设计中发挥着重要作用,广泛应用于企业级网络和数据中心。 ... [详细]
  • Linux负载均衡LVS(IPVS)
    一、LVS简介LVS是LinuxVirtualServer的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,现在已经是Linux ... [详细]
  • 在交换机链路聚合中,负载均衡算法通过哈希表实现。每当创建一个新的聚合组时,交换机的底层硬件会生成一个对应的哈希表,该表存储在交换芯片上。哈希表的结构包括索引(Index)和相应的条目,这些索引由硬件支持,用于确定数据包的传输路径。通过这种方式,负载均衡算法能够高效地分配网络流量,提高链路利用率和系统性能。 ... [详细]
  • 实现Nginx对ThinkPHP URL重写及PATHINFO支持的详细方法解析【PHP开发】
    在PHP后端开发中,实现Nginx对ThinkPHP的URL重写及PATHINFO支持是一项常见的需求。本文详细解析了经过多次尝试和研究,最终找到的一种有效配置方法,能够确保URL_MODERewrite功能正常运行,并提供稳定的服务。此外,文章还探讨了相关配置项的具体作用及其优化建议,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 修复一个 Bug 竟耗时两天?真的有那么复杂吗?
    修复一个 Bug 竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的 Bug 为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。 ... [详细]
  • 【网络技术】VLAN与以太网交换机的工作机制解析
    拓补说明如图。PC1和PC3同处VLAN10,PC2和PC4同处VLAN20,4台PC的IP地址同处在10.10.10.024的这个IP地址段中。PC1和PC2通过交换机1接入网络 ... [详细]
author-avatar
hhxsv5
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有