1、单机、集群、分布式概念

1)单机

image.png

2)集群(横向复制)

image.png

3)分布式(纵向拆分)

image.png

2、BS架构请求过程

image.png 浏览器发起请求,域名ip映射,根据ip访问cdn静态资源服务,最后去服务器获取数据服务,浏览器会缓存相关数据和静态资源;

1)web1.0架构

image.png 应用程序主要做静态文件读取,并返回给浏览器。

2)数据库开发

image.png 应用程序主要读取数据库数据,填充到前端html页面。

3)JavaWeb

image.png MVC模式三层结构

4)javaweb的集群模式

image.png 基于MVC的横向复制模式,对整个项目的架构没影响。

4)Javaweb的分布式发展

image.png 将service层单独分离出去,形成一个单独的项目jar,单独运行。web服务器通过rpc调用,对分离出去的service进行调用。

5)Javaweb的微服务架构

image.png 将每个业务分为一个微服务,每一个微服务都有一个完整的调用链。在微服务内部,将需要对外提供的接口,包装成rpc接口,对外部开放。

3、前后端交互模式过程

1)整页交互

image.png 浏览器请求皆为页面级别的请求,每次请求都是一次页面跳转或者刷新。

2)页面+ajax混合

image.png 浏览器请求主要为页面级请求,有局部刷新使用ajax刷新数据,页面体验更好。

3)单页应用mvvm模式

image.png 首次请求返回页面,后续请求皆为restful返回json数据,性能最佳。

4、架构思路解决方案

系统架构的评价依据为,并发数(tps)数据量级(qps) image.png 优化方案:从系统架构的从下往上看。

1)数据存储层面

1、数据库架构层面分库分区分表 2、使用搜索中间件优化性能 3、缓存优化

2)服务层面

1、拆分服务 2、横向扩展,集群负载 3、前端负载和网络cdn优化

5、架构具体解决方案概述

1)session跨域共享

image.png 方案:1、负载使用hash;2、使用redis共享session

2)缓存方案

image.png 方案:1、缓存穿透;2、缓存击穿;3、缓存雪崩

3)mq服务消息交换方案

image.png 方案:mq服务管理消息交互,应用程序解耦

4)Java多线程优化同步转异步

image.png image.png 方案:单线程到多线程转换,多线程安全问题,同步转异步,单线程如何转多线程

5)数据库架构

image.png 方案:1、数据库架构设计;2、数据分片设计;3、数据库中间件方案