阶段一-01.万丈高楼,地基首要-1-3 大型网站架构演变历程
web2.0时代
早期传统web开发
文件服务器和数据库
服务器仅仅包含网站,用户所上传的头像等其他数据,会有一个额外的文件服务器存储。
数据库也是单独的服务器。
用户成倍成倍的增加,用户的查询量增加。所有压力都会到数据库上,引入缓存中间件。用户大部分查询都会落到缓存中间件里面,而不是直接落到数据库。保证用户体验增强,响应速度也会加快。
单节点进入瓶颈后。
大部分的请求是读数据库,少部分是写数据库。数据库进行读写分离。主库定时的向从库同步数据,
数据库扛不住了 就做分库分表。有多个数据库了同一张表的数据根据一定的算法和规则,散列在不同的数据库,这种做法也称之为分布式数据库。这也是我们对数据库拆分最后的手段。只有在数据库规模非常强大的时候,才会考虑使用它。一般是单表的数据库达到700百万,或者800万的时候,我们就要考虑这么做了。因为我们数据库的性能会急剧下降,
一旦分库分表了,分布式主键,也就是我们每一张表内的每一条数据的主键,就不能够再使用自增长了。我们一定要使用分布式主键,全局唯一的主键。
引入solr或者是elaticSearch搜索引擎。
拆分服务。分布式事务,用户的请求可能同时到达多个子系统,所以分布式事务也是必须要考虑的问题。