加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

大型Web网站架构演变之9大阶段

发布时间:2019-05-11 00:37:16 所属栏目:建站 来源:程序猿的内心独白
导读:媒介 我们以Java Web为例,来搭建一个简朴的电商体系,看看这个体系可以怎样一步步演变。 该体系具备的成果: 用户模块:用户注册和打点 商品模块:商品展示和打点 买卖营业模块:建设买卖营业和打点 正文 阶段一、单机构建网站 网站的初期,我们常常会在单机上跑

负载平衡器按照哀求的目标IP地点,找出该IP地点最近行使的“处事器组”,留意,并不是详细某个处事器,然后回收起码毗连数从该组中挑出详细的某台处事器出来,把哀求转发之。若该处事器超载,那么按照起码毗连数算法,在集群的非本处事器组的处事器中,找出一台处事器出来,插手本处事器组,然后把哀求转发。

3、集群哀求返回模式题目

1)、NAT

负载平衡器吸取用户的哀求,转发给详细处事器,处事器处理赏罚完哀求返回给平衡器,平衡器再从头返回给用户。

2)、DR

负载平衡器吸取用户的哀求,转发给详细处事器,处事器出来玩哀求后直接返回给用户。必要体系支持IP Tunneling协议,难以跨平台。

3)、TUN

同上,但无需IP Tunneling协议,跨平台性好,大部门体系都可以支持。

4、集群Session同等性题目

1)、Session Sticky

Session sticky就是把统一个用户在某一个会话中的哀求,都分派到牢靠的某一台处事器中,这样我们就不必要办理跨处事器的session题目了,常见的算法有ip_hash算法,即上面提到的两种散列算法。

  • 利益:实现简朴;
  • 弱点:应用处事器重启则session消散。

2)、Session Replication

Session replication就是在集群中复制session,使得每个处事器都生涯有所有效户的session数据。

  • 利益:减轻负载平衡处事器的压力,不必要要实现ip_hasp算法来转发哀求;
  • 弱点:复制时收集带宽开销大,会见量大的话Session占用内存大且挥霍。

3)、Session数据齐集存储

Session数据齐集存储就是操作数据库来存储session数据,实现了session和应用处事器的解耦。

  • 利益:对比Session replication的方案,集群间对付宽带和内存的压力大幅镌汰;
  • 弱点:必要维护存储Session的数据库。

4)、Cookie Base

Cookie base就是把Session存在Cookie中,由赏识器来汇报应用处事器我的session是什么,同样实现了session和应用处事器的解耦。

  • 利益:实现简朴,根基免维护。
  • 弱点:cookie长度限定,安详性低,带宽耗损。

值得一提的是:

  • Nginx今朝支持的负载平衡算法有wrr、sh(支持同等性哈希)、fair(lc)。但Nginx作为平衡器的话,还可以一同作为静态资源处事器。
  • Keepalived + ipvsadm较量强盛,今朝支持的算法有:rr、wrr、lc、wlc、lblc、sh、dh
  • Keepalived支持集群模式有:NAT、DR、TUN
  • Nginx自己并没有提供session同步的办理方案,而Apache则提供了session共享的支持。

办理了以上的题目之后,体系的布局如下:

阶段四、数据库读写疏散化

上面我们老是假设数据库负载正常,但跟着会见量的的进步,数据库的负载也在逐步增大。那么也许有人顿时就想到跟应用处事器一样,把数据库一份为二再负载平衡即可。

但对付数据库来说,并没有那么简朴。若是我们简朴的把数据库一分为二,然后对付数据库的哀求,别离负载到A呆板和B呆板,那么显而易见会造成两台数据库数据不同一的题目。那么对付这种环境,我们可以先思量行使读写疏散和主从复制的方法。

读写疏散后的体系布局如下:

分享:大型Web网站架构演变之9大阶段

这个布局变革后也会带来两个题目:

  • 主从数据库之间数据同步题目。
  • 应用对付数据源的选择题目。

办理方案:

  • 行使MySQL自带的Master + Slave的方法实现主从复制。
  • 回收第三方数据库中间件,譬喻MyCat。MyCat是从Cobar成长而来的,而Cobar是阿里开源的数据库中间件,其后遏制开拓。MyCat是海内较量好的MySql开源数据库分库分表中间件。

阶段五、用搜刮引擎缓解读库的压力

数据库做读库的话,经常对恍惚查找力有未逮,纵然做了读写疏散,这个题目还未能办理。以我们所举的买卖营业网站为例,宣布的商品存储在数据库中,用户最常行使的成果就是查找商品,尤其是按照商品的问题来查找对应的商品。对付这种需求,一样平常我们都是通过like成果来实现的,可是这种方法的价钱很是大,并且功效很是禁绝确。此时我们可以行使搜刮引擎的倒排索引来完成。

搜刮引擎具有的利益:它可以或许大大进步查询速率和搜刮精确性。

引入搜刮引擎的开销

  • 带来大量的维护事变,我们必要本身实现索引的构建进程,计划全量/增进的构建方法来应对非及时与及时的查询需求。
  • 必要维护搜刮引擎集群

搜刮引擎并不能更换数据库,它办理了某些场景下的精准、快速、高效的“读”操纵,是否引入搜刮引擎,必要综合思量整个体系的需求。

引入搜刮引擎后的体系布局如下:

分享:大型Web网站架构演变之9大阶段

阶段六、用缓存缓解读库的压力

常用的缓存机制包罗页面级缓存、应用数据缓存和数据库缓存。

应用层和数据库层的缓存

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读