分布式架构概述

分布式概念

互联网架构的最大的两个特点:高并发,海量数据。
对于企业而言,用户数量是没有上限的。
单位时间内收到的请求数量,海量数据的存储,海量数据的分析。
在这里插入图片描述

什么是分布式

分布式就是由多个服务器或者节点组成的一台超大型的服务器。
分布式要处理的核心的俩个问题:
多台电脑一起完成一个任务。
1)任务分解
2)节点通信

分布式与集群的关系

对于电商的话,就是用户,商品,订单,交易
分布式就是一个业务拆分成多个子系统部署在不同的服务器上。
高性能集群:同一个业务部署在多个服务器上,保证高可用。

计算机发展历史

1)1946年 第一台电子数字计算机 宾夕法尼亚大学 情人节
每秒5000次的加法运算
2)1964 IBM SYSTEM/360 大型主机 软件架构往集中式发展
3)X86 CPU
4)RISC CPU 小型机

分布式架构发展

1 PC机性能不断提升
2 大型主机的局限性:体积庞大,成本昂贵,运维成本大,单点问题,宕机爆炸。

淘宝 去IOE运动

IBM小型机 Orcale Rac集群,EMC存储设备
1 成本昂贵
2 技术架构已经无法再提升,满足企业发展

2013年5月17日 最后一台IBM小型机下线

架构的发展演变过程

淘宝为例:
lamp linux + Apache + mysql + PHP

架构的发展跟业务需求来
BAT
B:搜索
A:商品搜索+下单支付
T:海量用户的实时消息传输

什么是大型网站/架构?

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

架构升级

架构升级演变图

单机应用

tomcat jsp/servlet
数据库:mysql

可以放在一台服务器,也可以将数据库和应用分别部署不同服务器
在这里插入图片描述

负载均衡

随着用户量的提升,单机的tomcat应用服务器瓶颈
使用nginx进行负载均衡
在这里插入图片描述
对应用服务器进行集群,负载均衡
多台服务器问题
请求转发
session
保证服务器段的会话保持
客户端的会话包存 cookie 存储的JsessionID
ConcurrentMap key jseesionid value session
解决session跨域共享问题

  • session sticky 保证请求落在同一台服务器上
  • session replication session复制
  • session 集中存储 存储在db,存储在缓存服务器redis
  • cookie(主流)
    服务器生成一个access_token (userid name token timestamp)

数据库的高性能

随着负载均衡的服务器越来越多,数据库的瓶颈开始出现。此时需要数据库的读写分离。
在这里插入图片描述
涉及到数据的问题

  • 读写分离如何实现
  • 数据同步
  • 数据库路由 mycat 过滤什么操作去访问写 什么去访问读

搜索引擎的升级

电商最多操作,搜索商品
加上搜索引擎 集群
在这里插入图片描述
问题:
搜索引擎的索引数据怎么做同步,实时增量同步还是定时全量同步?

增加缓存服务器

用户量是没有上限的
缓存 限流 降级
读操作:
增加缓存服务器 redis
在这里插入图片描述

数据库的水平垂直拆分

在这里插入图片描述

抽离服务 减少冗余 中间采用webservice或者dubbo

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_38660866/article/details/107725226