一、分布式架构概述

  • 什么是分布式
  • 分布式和集群的关系
  • 计算机的发展历史
  • 计算机的发展历史
  • 分布式架构的发展
  • 架构的发展演变过程
  • 第一版应用
  • 第二版 单击负载越来越高,数据库服务器和应用服务器分离
  • 第三版 应用服务器做集群
  • 第四版 数据库进行读写分离
  • 第五版 解决搜索带来的问题
  • 第六版 解决访问量持续增高带来的问题
  • 第七版:数据库的水平/垂直拆分
  • 第八版 应用拆分:
  • 架构图示
  • 解决session跨域共享问题


什么是分布式

一个业务拆分成多个业务模块,部署在不同的服务器里面

  1. 任务分解
  2. 节点通信

分布式和集群的关系

电商平台: 用户、 商品、订单、 交易
分布式: 一个业务拆分成多个子系统,部署在不同的服务器上
集群: 同一个业务,部署在多个服务器上

计算机的发展历史

计算机的发展历史

  1. 1946 情人节
  2. 1964 IBM SYSTEM/360
    超强的计算能力、 高可靠性
  3. X86 CPU
  4. RISC CPU 小型机

软件架构往集中式发展, 成为当时软件架构的主流

分布式架构的发展

  1. 时机成熟了
    PC机的性能不断提升
  2. 企业必须要做

去IOE
IBM小型机 、 Oracle Rac、 EMC存储设备
PC mysql mariadb
2013年5月17号,最后一台IMB小型机下线

单机计算机的架构->分布式计算机架构

架构的发展演变过程

lamp
BAT
什么是大型网站

  1. 访问量(tps、qps)
  2. 数据量(存储数据量)

电商平台的发展
用户、 商品、订单

容器: tomcat ;jsp/servlet
数据库存储: mysql
网络层面的知识:tcp/udp

第一版应用

分布式基础架构CDH 全新的分布式基础架构_搜索引擎

第二版 单击负载越来越高,数据库服务器和应用服务器分离

分布式基础架构CDH 全新的分布式基础架构_应用服务器_02

第三版 应用服务器做集群

集群里面会有一些问题:

  1. session共享的问题
  2. 如何做请求转发:CDN、前端的负载均衡器;

第四版 数据库进行读写分离

分布式基础架构CDH 全新的分布式基础架构_数据库_03


涉及的三个问题

  1. 数据库的读写分离怎么做?
  2. 数据库的同步要怎么做?
  3. 数据库的路由要怎么做?-mycat

第五版 解决搜索带来的问题

电商平台操作最多就是搜索商品—用搜索引擎,搜索引擎要做集群,


应用搜索引擎也会带来问题:

  1. 搜索引擎的索引数据怎么去做同步?实时增量同步?还是定时全量同步?----具体怎么做不是固定的,还是要去看业务

分布式基础架构CDH 全新的分布式基础架构_数据库_04

第六版 解决访问量持续增高带来的问题

用户是没有上限的,我们可以这样来做,引入缓存机制

  1. 缓存
  2. 限流
  3. 降级

第七版:数据库的水平/垂直拆分

分布式基础架构CDH 全新的分布式基础架构_分布式基础架构CDH_05

第八版 应用拆分:

分布式基础架构CDH 全新的分布式基础架构_分布式基础架构CDH_06

架构图示

还有监控,数据采集、日志分析等

数据采集:ELK,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成

分布式基础架构CDH 全新的分布式基础架构_数据库_07

解决session跨域共享问题

  1. session sticky
  2. session application
  3. session集中存储:存储db,存储在缓存服务器(redis)
  4. cookie(主流)
    access_token(userid/token/timestamp)
    SOA架构和微服务的区别:消息总线的不同