@
分布式架构的演进
- 架构的本质
- 大型网站的架构演进
分布式、架构
阿里:去IOE,IBM,Oracle,EMC
需求:
-
有序化重构
分与合,按照 子系统、模块,组件,进行拆分
业务架构/技术架构
抽象思维
架构的演变过程
开始:人员问题,时间周期
Session保存数据,分多个服务器,http是无状态的
如何解决:Session +cookie
session 服务端保存状态
cookie 客户端保存状态
分布式架构,需要考虑Session共享,实现单点
Session共享
- Session复制,同步Session,
- 增加网络开销(只能在小的负载上)
- 消耗内存
- Session共享,同一存储,基于Redis存储
- 无状态存储,生成一个标识,把Session直接存储在客户端(token)----(存在安全性问题)
数据库性能提升
- 读写分离,->读多写少的场景
- 分库分表 ->历史库
数据库如何同步:mysql - master/slave
应用如何对数据源进行路由:mycat/sharding-jdbc
特性的问题
搜索引擎:Lucene,solr,elaticsearch(商业服务)
索引:基于原始数据,
全量构建->第一次构建
增量构建->后续商品新增,增量同步
非实时(异步/实时任务)、实时
ELK,ElasticSearch
Nosql存储,后者其他存储方式
hbase,MongoDB,Redis;。。。
浏览器缓存,应用缓存,数据库缓存,cpu缓存。。。
文件存储,OSS,HTFS...
分布式数据库
通过分表分库实现数据拆分
- 分布式事务问题->分布式数据一致性问题
- Spring cloud alibaba ->fecser
远程调用
Dubbo、thrift