• 《亿级流量网站架构核心技术》


    《亿级流量网站架构核心技术》

    墨菲定律

    1. 任何事情都美哦有表面看起来那么简单
    2. 所有的事都会比你预计的时间长
    3. 可能出错的事总会出错
    4. 如果你担心某种情况发生,那么它就更有可能发生。

    康威定律

    1. 系统架构事公司组织架构的反映
    2. 应该按照业务闭环进行系统拆分/组织架构划分,实现闭环/高内聚/低耦合,减少沟通成本
    3. 如果沟通出现问题,那么就应该考虑进行系统和组织架构的调整
    4. 在合适时机进行系统拆分,不要一开始就把系统/服务拆得非常细,虽然闭环,但是每个人维护的系统多,维护成本高。

    高并发原则

    1. 无状态:应用无状态,配置文件有状态,应用比较容易做水平扩展。
    2. 拆分:是单块系统还是按功能模块拆分系统根据环境进行权衡
      系统维度:系统功能/业务拆分
      功能维度:功能拆分
      读写维度:读写比例特征进行拆分
      大量读的情况,考虑使用缓存提升性能
      大量写的情况,考虑使用分库分表
      聚合读的情况,数据异构拆分系统,将分散在多处的数据聚合到一处存储
      AOP维度:根据访问特征,按照AOP进行拆分。CDN、页面渲染系统都属于AOP。
      模块维度:按照基础或者代码维护特征进行拆分。
    3. 服务化:进程内服务 -> 单机远程服务 -> 集群手动注册服务 -> 自动注册和发现服务 -> 服务的分组/隔离/路由 -> 服务治理如限流/黑白名单
    4. 消息队列:服务解耦(一对多消费),异步处理,流量削峰/缓冲等。
      (1) 为流量缓冲
      牺牲强一致性,而保证最终一致性
      (2) 数据校对
      保证数据一致性和完整性
      Worker扫描原始表,对业务数据进行校对,有问题的要进行补偿
    5. 数据异构
      (1) 数据异构
      查询某个用户的订单,则需要聚合多个表才能返回,订单表读性能很差,对订单表进行异构
      异构一套订单表,按照用户ID进行分库分表,考虑对历史数据的归档
      其它方法,异步加载,合并请求
      (2) 数据闭环
      • 数据异构:通过MQ机制接收数据变更,原子化存储到合适的存储引擎,如Redis或持久化KV存储
      • 数据聚合:
        数据异构 —— 把数据从多个数据源拿过来
        数据聚合 —— 数据聚合的目的是把这些数据做个聚合
      • 前端展示:前端通过一次或少量几次调用拿到所需要的数据
    6. 缓存银弹
    流程节点 缓存技术
    客户端 使用浏览器缓存
    客户端应用缓存
    客户端网络 代理服务器开启缓存
    广域网 使用代理服务器(含CDN)
    使用镜像服务器
    使用P2P技术
    源站与源站网络 使用接入层提供的缓存机制
    使用应用层提供的缓存机制
    使用分布式缓存
    静态化、伪静态化
    使用服务器操作系统提供的缓存
  • 相关阅读:
    Prism-超轻量的开源框架
    1的数目
    二叉树中和为某一值得路径
    把二叉树打印成多行
    对称的二叉树
    二叉树的下一个节点
    删除链表中重复的结点
    数组中的重复数字
    连表中环入口的节点
    把字符串换成整数
  • 原文地址:https://www.cnblogs.com/richardcuick/p/16080097.html
Copyright © 2020-2023  润新知