分布式复习——架构概述
特点:高并发,海量数据
什么是分布式?
分布式就是一个业务拆分成几个子系统,部署在不同的服务器上,这些子系统组合在一起形成一个完整的系统。
电商平台:用户,商品 ,订单,交易
什么是集群?
同一个业务,部署在多个服务器上
如同一用户系统部署两套: 用户1 ,用户2
集群保证高可用,分布式保证高性能。
两个问题需要解决
1: 任务分解
2:节点通信 :rpc框架+消息中间件
什么是大型网站?
1 访问量 (tps,qps)
2 数据量(存储数据量)
电商平台的发展
第一版应用
第二版 单击负载越来越高,数据库服务器和应用服务器分离
第三版 应用服务器做集群
1 .session cookie 存储的是JSESSIONID
session存储在服务器端 cookie存储在浏览器端
服务器端(Tomcat) 会生成一个唯一的sessionId号存储在cookie中 叫 jessionid
在服务器端(tomcat)中存储serssion 使用concurrentMap (ConcurrentMap key JSESSIONID values session)
浏览器端下次请求服务器端是将jsessionId带过来 找到对应的session 获取session中存储的信息(用户信息)
解决session跨域共享问题
1. session sticky :会话保存在单机上 保证会话请求落在同一台服务器上
2. session replication:session 复制 每一台服务器上都保持一份相同的session (造成额外的网络开销)
3. session 集中存储 :存储在db、 存储在缓存服务器 (redis)
4. cookie (主流)
access_token(userid/token/timestamp(过期时间) 加密)
将access_token存储在客户端的cookie中 每次 客户端过来访问 服务器端拦截其中 获取cookie中的access_token 根据 userid和timestamp(过期时间) 判断是否有效
soa架构和微服务架构区别
soa 有消息总线 微服务架构不需要依赖任何消息总线
3. 如何做请求转发
第四版 数据库的高性能操作
1. 数据库读写分离怎么操作 二八原则?
2. 数据库的数据同步
3. 数据库路由 mycat
电商平台最多的操作: 搜索商品
问题:
1. 搜索引擎的索引数据怎么去做同步,实时增量同步? 还是定时全量同步?
第六版 解决访问量持续增高,引入缓存机制
用户量是没有上限的 缓存 限流 降级
第8️版本 数据库的水平/垂直拆分
数据库可以按不同的业务维度去拆分
第9版本