热门标签 | 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)哈希策略。


推荐阅读
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
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社区 版权所有