引言

本来没想写这个题材的,为了某某童鞋能够更好的茁壮成长,临时写一篇负载均衡的。负载均衡,大家可能听过什么3层负载均衡、4层负载均衡、7层负载均衡什么的?那这是怎么分的呢,ok,是根据osi七层网络模型来分的,例如nginx是工作在应用层,应用层刚好是在第7层,因此nginx又可以称为7层负载均衡。 我本来想一层层慢慢讲,从最基础的网络协议开始讲起,想了想又觉得这种讲法不适合速成。因此我改变思路,直接讲负载均衡架构的演进,最后的成品就可以在面试中侃一侃,因为现在负载均衡基本都是这套架构!。

正文

DNS

开始呢,我们的应用只有一台web-server。那么你希望: 输入http://guduyan.com就能定位到该server

那很简单,只要在DNS里配上域名和你的server映射关系,就能访问到啦! 流程如下图所示

好,现在呢,多了一台web-server,你就可以通过在DNS里加一条配置,以DNS轮询方式进行负载均衡。如下图所示

Nginx+DNS

现在假设,我们多了一些需求啊。你的系统按照功能模块拆成两个系统:用户系统和订单系统。那么你希望 输入http://guduyan.com/user/的时候定位到用户系统。输入http://guduyan.com/order/的时候定位到订单系统。

那这时候,光靠DNS就不行了,就需要采用DNS+nginx进行负载均衡!如下图所示

ps:nginx还可以做动静分离哦,大家应该懂的!

那如果系统的访问压力进一步加大,万一nginx挂了怎么办?如何给nginx引入热备? 这里就要用keepalived了,用两台nginx组成一个集群,分别部署上keepalived,设置成相同的虚IP,这样一个节点在崩溃的情况下,另一个节点能够自动接替其工作,如下图所示

Lvs+Nginx+DNS

接下来随着系统规模的继续增大,你会慢慢的发现nginx也扛不住了!nginx工作在网络的第7层,所以它可以针对http应用本身来做分流策略,比如针对域名、目录结构等。 而Lvs工作在网络4层,抗负载能力强,性能高,能达到F5的60%,对内存和CPU资源消耗比较低,且稳定,可靠性高。它利用linux的内核进行转发,不产生流量。它能撑的并发量取决于机器的内存大小,一般来说撑个几十万并发问题不大!

ps:好好思考为什么会出现nginx+Lvs被同时使用,注意看我演变的过程,面试必问!注意了,如果是比较小的网站(日pv<1000万),用nginx就完全可以了,如果机器也不少,可以用dns轮询,Lvs所耗费的机器还是比较多的;大型网站或者重要的服务,机器不发愁的时候要多多考虑利用Lvs。

那么,在这种情况下的架构图如下所示

可能有个疑问,为什么nginx层不用keepalived做热备?

主要原因是: 在这种架构下,nginx不是单台,如果nginx挂了,Lvs会帮你转发到其他可用的nginx上!

最后,为了应对亿级的PV,一般会在DNS端配多个Lvs集群的地址。如下所示

方案扩展到了这一步,Lvs层就没有必要再进行扩展新的节点了。这套架构已经能扛得住亿级的PV。当然,前提是你的应用没问题!

总结

OK,这套架构已经能扛得住千万的PV。一般面对面试官的提问,诸如如何设计高并发架构啊,本文都可以作为参考回答之一。

讲讲亿级PV的负载均衡架构相关推荐

  1. 亿级Web系统负载均衡几种实现方式

    aspirant 架构师技术联盟 负载均衡(Load Balance)是集群技术(Cluster)的一种应用技术.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应 ...

  2. 亿级PV物联网的基础架构

    作者:刘丁 https://blog.didiyun.com/index.php/2018/12/26/iot-infrastructure/ 0 简述 随着物联网的蓬勃发展,万物互联已经不是新概念, ...

  3. 1亿级PV网站架构演变

    作者:叶军 来自:http://www.yejun.cn/?p=1154 一个网站就像一个人,存在一个从小到大的过程.养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则.本文结 ...

  4. 亿级PV超大型网站集群架构图形深度揭秘讲解

    猛戳下面地址观看: 亿级PV超大型网站集群架构图形深度揭秘讲解

  5. 从100PV到1亿级PV网站架构演变(转)

    http://www.linuxde.net/2013/05/13581.html 一个网站就像一个人,存在一个从小到大的过程.养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原 ...

  6. [转载]从100PV到1亿级PV网站架构演变

    首页 最新文章 在线课程 业界 开发 IT技术 设计 创业 IT职场 投稿 更多 » - 导航条 -首页最新文章在线课程业界开发- Web前端- Python- Android- iOS- Java- ...

  7. 网站流量从100PV到1亿级PV网站架构演变

    个人网站就像一个人,存在一个从小到大的过程.养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则.本文结合我自已14年网站人的经历记录一些架构演变中的体会. 1:积累是必不可少的 ...

  8. 从100PV到1亿级PV网站架构演变

     读者福利!2 TB 各类技术资源免费赠送 作者:叶军 网址:http://www.yejun.cn/?p=1154 一个网站就像一个人,存在一个从小到大的过程.养一个网站和养一个人一样,不同时期需要 ...

  9. 从100PV到1亿级PV站点架构演变

    假设你对项目管理.系统架构有兴趣,请加微信订阅号"softjg".增加这个PM.架构师的大家庭 一个站点就像一个人,存在一个从小到大的过程. 养一个站点和养一个人一样.不同一时候期 ...

  10. 腾讯云十亿级 Node.js 网关的架构设计与工程实践

    作者|王伟嘉 编辑|孙瑞瑞 本文由 InfoQ 整理自腾讯云 CloudBase 前端负责人王伟嘉在 GMTC 全球大前端技术大会(深圳站)2021 上的演讲<十亿级 Node.js 网关的架构 ...

最新文章

  1. springboot连接容器内mysql_docker部署springboot项目,连接mysql容器
  2. XML引入多scheme文件约束简单示例
  3. Python+Opencv实现模板匹配
  4. php学语法,PHP入门学习——PHP语法
  5. Android零碎要点---eclipse两个小技巧
  6. DeepWalk: Online Learning of Social Representations-1
  7. idea svn 不见的问题
  8. 人生感悟:生活磨练有时也是一种财富
  9. Posix信号量操作函数
  10. 二次规划(QP)求解与序列二次规划(SQP)求解非线性规划问题
  11. mysql data目录 恢复_利用mysql data文件夹恢复数据
  12. 计算机ps论文范文,ps论文范文
  13. pdf怎么转换成图片?
  14. 阿里云轻量应用服务器防火墙配置(全网最简单)
  15. [work] 清华朱军 NIPS 2017对抗样本攻防竞赛总结(附学习资料)
  16. 使用二维码——第三方库ZBar和libqrencode的使用
  17. 手札 江湖的完美窗口化研究
  18. 数说故事2022年中国预制菜行业趋势及营销创新洞察报告
  19. 高级加密标准 (AES) 和安全断言标记语言 (SAML) 的 Web 安全
  20. 图像处理6-图像泊松编辑

热门文章

  1. javascript时间戳转换成yyyy-MM-DD格式
  2. Android组件化开发实践
  3. 架构之美阅读笔记06
  4. 2016、11、17
  5. CUDA memory
  6. 多媒体交互应用基础(7)
  7. 近期生活中将会发生的一点变化!
  8. 同花顺 sendmessage python_进程通信-SendMessage使用方法
  9. python画图代码讲解_python画图例子代码
  10. FireEye实验室在一次水坑式攻击中发现IE 0DAY