博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日活亿级用户的服务器架构要怎么搭?
阅读量:2441 次
发布时间:2019-05-10

本文共 962 字,大约阅读时间需要 3 分钟。

引言

本来没想写这个题材的,为了某某童鞋能够更好的茁壮成长,临时写一篇负载均衡的。负载均衡,大家可能听过什么3层负载均衡、4层负载均衡、7层负载均衡什么的?那这是怎么分的呢,ok,是根据osi七层网络模型来分的,例如nginx是工作在应用层,应用层刚好是在第7层,因此nginx又可以称为7层负载均衡。

正文

DNS

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

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

640?wx_fmt=png

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

640?wx_fmt=png

Nginx+DNS

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

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

640?wx_fmt=png

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

那如果系统的访问压力进一步加大,万一nginx挂了怎么办?如何给nginx引入热备?

640?wx_fmt=png

Lvs+Nginx+DNS

接下来随着系统规模的继续增大,你会慢慢的发现nginx也扛不住了!nginx工作在网络的第7层,所以它可以针对http应用本身来做分流策略,比如针对域名、目录结构等。ps:好好思考为什么会出现nginx+Lvs被同时使用,注意看我演变的过程,面试必问!注意了,如果是比较小的网站(日pv<1000万),用nginx就完全可以了。

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

640?wx_fmt=png

可能有个疑问,为什么nginx层不用keepalived做热备?主要原因是:

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

640?wx_fmt=png

方案扩展到了这一步,Lvs层就没有必要再进行扩展新的节点了。这套架构已经能扛得住亿级的PV。当然,前提是你的应用没问题!另外如果资金充裕,Lvs可以替换为F5也是可行的。

总结

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

640?wx_fmt=png

转载地址:http://yvbqb.baihongyu.com/

你可能感兴趣的文章
Linux日志式文件系统面面观(转)
查看>>
正版风暴让盖茨命不盖绝 Linux祸福难料(转)
查看>>
单一产品不会成功 开源软件开始商业应用(转)
查看>>
RedHat上SSH2的安装和使用(转)
查看>>
安全使用RedHat Linux系统(转)
查看>>
RedHat Enterprise AS4硬盘安装步骤(转)
查看>>
全国第一个高校Linux培训考试中心建立(转)
查看>>
Linux黑客大曝光:Linux安全机密与解决方案(转)
查看>>
Gentoo Linux CD 方式全程安装过程(转)
查看>>
关于Kerberos安装的几个问题(转)
查看>>
Solaris硬盘分区简介(转)
查看>>
gcc编译器小知识FAQ(转)
查看>>
Linux下多线程编程与信号处理易疏忽的一个例子(转)
查看>>
流氓和木马结合 强行关闭你的防火墙(转)
查看>>
SUSE一纸诉状控告SCO 捍卫知识产权(转)
查看>>
debian下编译2.6.13.2内核的步骤及感受(转)
查看>>
预装正版的市场意义(转)
查看>>
创建小于16M XFree86迷你Linux系统(转)
查看>>
shell中常用的工具(转)
查看>>
使用MySQL内建复制功能来最佳化可用性(转)
查看>>