互联网架构演变过程
数据库分层 提升性能
应用分层 优化服务
Session共享
1:session复制
2:Session共享 统一存储(把session数据放到redis sever获取redis上的session)
3:无状态存储 例如:客户端设置access_token (这个token是服务器加密后给客户端 客户端访问服务器时 服务器解析token)存在安全问题
数据库性能提升
1:读写分离 -> 读多写少的场景
2: 分库分表 -> 历史库
数据如何同步(mysql数据库自带的 -master /slave)
应用如何对数据路由 mycat /sharding-jdbc
特性问题
搜索引擎: lucence,solr,elasticsearch(商业服务)
索引 ->
全量构建 ->第一次构建
增量构建 - >增量同步
非实时构建(异步/定时任务)
nosql存储(非关系型数据库)或其他存储方式
hbase,mongoDB,redis;...
浏览器缓存,应用缓存,数据库缓存,cpu缓存...
文件存储 OSS,HDFS...
分布式数据库 (通过分表分库实现数据库拆分)
1:分布式事务问题 -> 分布式数据一致性问题
spring cloud alibaba -> fescar(seata)/RocketMQ - >分布式事务解决方案
远程调用
dubbo,thinft...
高可用方案
1:单点故障
多机房部署
基于当前用户所在的位置去找一个最近的机房进行数据传输
监控
1:链路监控 zipkin。tracelID
2:硬件监控:cpu,内存,磁盘
全链路压力测试,单节点压力测试,loadrunner,jemeter,apache ad工具
SOA->微服务->serviceMesh 演变