美文网首页大型网站系统与Java中间件阅读
【读书】大型网站与Java中间件实战② 大型网站的架构演进

【读书】大型网站与Java中间件实战② 大型网站的架构演进

作者: 月半是个字 | 来源:发表于2018-08-01 21:59 被阅读0次

    大型网站的架构演进

    什么是大型网站?

    • 支持海量的数据
    • 支持非常高的并发访问量
    • 分布式系统

    大型网站的架构演进

    用Java技术和单机来构建的网站

    图1. 技术单机构建的网站

    从一个单机的交易网站说起

    关注的是随着数据量、访问量提升,网站结构发生了什么变化,而不是关注具体的业务功能点

    图2. 基于Java技术用单机构建的交易网站

    各个模块之间是通过JVM内部的方法调用来交互的

    单机负载警告,数据库与应用分离

    • 遇到的问题

    访问量不断增大,服务器负载持续升高

    • 解决方法

    数据库与应用分离

    图3. 应用与数据库分开的结构

    应用服务器负载告警,应用服务器搭建集群

    • 遇到的问题

    应用服务器压力变大

    • 解决方法

    应用从单机变成集群

    图4. 应用服务器集群
    • 新的问题

    Q1. 用户对服务器的选择问题
    Q2. Session的问题

    • 解决方法

    Q1. 使用DNS或者添加负载均衡设备


    图5. 引入负载均衡设备的结构

    Q2. session 解决方案

    1. Session Sticky
    2. Session Replication
    3. Session 数据集中存储
    4. Cookie Based

    数据压力变大,读写分离

    • 采用数据库作为读库

    网站业务读多写少


    加入读库后的结构
    • 加入搜索引擎

    搜索引擎其实是一个读库,大型网站的站内搜索


    加入搜索引擎的结构
    • 缓存

    加速数据读取的利器

    1. 数据缓存
    2. 页面缓存


      加入缓存后的结构

    分布式存储系统

    • 弥补关系型数据库的不足
    引入分布式存储系统的结构

    数据库新瓶颈

    • 单个数据库过大
    1. 专库专用,数据垂直拆分

    把数据库中不同的业务数据拆分到不同的数据库中

    1. 数据水平拆分

    同一个表的数据拆分到两个数据库中

    相关文章

      网友评论

        本文标题:【读书】大型网站与Java中间件实战② 大型网站的架构演进

        本文链接:https://www.haomeiwen.com/subject/plkdvftx.html