古老的榕树

分布式部署一点理解

发表 2016-09-17 13:11 阅读(2053) 评论(0) 赞(2)
一个服务器硬件资源足够强(比如 CPU 内存 SSD磁盘 配置都很优秀),也难免有瓶颈的时候,理论上说,一个单机服务器,并发量是有限的,以 Linux 服务器为例,即使 CPU 有无数个,核心顶配,内存同样很大,SSD磁盘很快,最终也会遇到连接数爆棚的时候,这时,以上的配置都没有用武之地了,因为 Linux 服务器是有最大连接数的,同一个时间点,最大连接数只有 65536 个,由此可知,什么 CPU 内存 磁盘 都没有用武之地了;同时不要期望通过高性能软件(nginx haproxy)来开辟多一个进程来有效利用资源,这些都是做无用功,这不是问题所在。

显而易见,网卡和 IP 才是关键瓶颈所在,如果服务器的资源绰绰有余,增加多几个高性能的网卡和IP,是可以解决问题的,能是有效利用资源的好办法。

增加几个网卡和 IP,是能解决问题的,但它是最初的扩展办法,一个服务器硬件资源耗尽了,也只能横向扩展。

最有效的横向扩展办法,需要在不同的网段或机房,增加服务器,多个服务器同时提供服务,这时多个服务器的顶层入口,实现的功能是一样的,只是终端的连接入口增加了,能有效缓解瓶颈的问题,说到这里,有些人可能会产生误区,他们老想着采用集中式的管理,再增加另外一台服务器做均衡负载服务器,代理这些顶层入口。其实这样恰恰又被搞砸了方案,试想增加这个均衡负载服务器,那它就变成瓶颈了。最初我们的目标就是让终端连接更多的顶层入口,集中式均衡负载代理,肯定是适得其反了。

回到刚才的思路,多个顶层入口,当然有多个IP,怎么让终端找到适合的入口呢?总不能在终端里采用随机访问某个服务器顶层入口,或者说终端采用试探服务器心跳,负载情况,择优选择顶级入口,哇,想想都有点麻烦了啊,现实中也很少见这么做的。

这时,如果你了解 CDN 原理,你可能就会有些思绪,能不能采用类似 CDN 的服务商,能让服务器根据终端所在区域或线路,择优选择连接最近或最空闲的顶级入口?答案是可以的,但小企业没有能力做这样的事情,这个方案已经涉及到了 智能 DNS 范畴了;但可以选择购买此类的服务,而且收费并不是很贵,比自己搭建划算得太多了。

说到最后,智能 DNS 解析 才是最好的方案。

Donate

如果文章对您有帮助,请使用手机支付宝扫描二维码,捐赠X元,作者离不开读者的支持!

0 条网友评论

哇~~~ 竟然还没有评论!

称呼*
邮箱*
内容*
验证码*
验证码 看不清换张