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

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

发布时间:2019-05-11 13:50:04 所属栏目:建站 来源:程序猿的内心独白
导读:副标题#e# 前言 我们以Java Web为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 正文 阶段一、单机构建网站 网站的初期,我们经常会在

读写分离后的系统结构如下:

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

这个结构变化后也会带来两个问题:

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

解决方案:

  • 使用MySQL自带的Master + Slave的方式实现主从复制。
  • 采用第三方数据库中间件,例如MyCat。MyCat是从Cobar发展而来的,而Cobar是阿里开源的数据库中间件,后来停止开发。MyCat是国内比较好的MySql开源数据库分库分表中间件。

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

数据库做读库的话,常常对模糊查找力不从心,即使做了读写分离,这个问题还未能解决。以我们所举的交易网站为例,发布的商品存储在数据库中,用户最常使用的功能就是查找商品,尤其是根据商品的标题来查找对应的商品。对于这种需求,一般我们都是通过like功能来实现的,但是这种方式的代价非常大,而且结果非常不准确。此时我们可以使用搜索引擎的倒排索引来完成。

搜索引擎具有的优点:它能够大大提高查询速度和搜索准确性。

引入搜索引擎的开销

  • 带来大量的维护工作,我们需要自己实现索引的构建过程,设计全量/增加的构建方式来应对非实时与实时的查询需求。
  • 需要维护搜索引擎集群

搜索引擎并不能替代数据库,它解决了某些场景下的精准、快速、高效的“读”操作,是否引入搜索引擎,需要综合考虑整个系统的需求。

引入搜索引擎后的系统结构如下:

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

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

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

应用层和数据库层的缓存

(编辑:西安站长网)

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

热点阅读