首页 > 其他分享 >分布式架构基础

分布式架构基础

时间:2023-06-09 11:07:53浏览次数:39  
标签:缓存 架构 请求 多线程 基础 浏览器 分布式 页面

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、数据库中间件方案

标签:缓存,架构,请求,多线程,基础,浏览器,分布式,页面
From: https://blog.51cto.com/u_14847393/6445775

相关文章

  • Python基础语法学习
    基础语法1、常量、表达式print(1+2-4)print(1+3*4)形如:1+2-3这个就叫表达式,表达式的结果叫做叫做返回值123这样的数字称为字面值常量,+-*叫做运算符注意在py中2/3=0.66666而不是c语言中的0在C中整数除整数结果还是整数且会把小数直接舍去,在编程中一般不会有......
  • 中视频的基础知识简介
    一、概念了解:中视频是什么中视频的概念可以分为广义和狭义。广义的中视频是指中等时长的视频(通常为1分钟到30分钟)。狭义的中视频概念由西瓜视频总裁任利锋提出,他认为中视频应该具备以下三个特点:(1)时间长度:1分钟到30分钟。(2)展现形式:以横屏为主,竖屏为辅。(3)视频内容:注重生产的专业内容......
  • OpenSCAP的基础使用方法
    大背景信息安全态势日趋严重,对我们网络安全工作提出了更高的要求,遵循一定的网络安全框架的同时,我们需要在各个不同的环节部署不同的安全措施形成纵深防御体系。服务器侧的安全基线在安全管理中是一个基础性的工作,是整个体系中不可缺少的一环,但是也是一个比较麻烦的工作,一方面是......
  • Python爬虫基础知识点
    Python爬虫是使用Python编写的程序,可以自动抓取互联网上的数据。常用的Python爬虫框架包括Scrapy、BeautifulSoup、Requests等。Python爬虫可以应用于众多场合,如大数据分析、信息监测、数据挖掘和机器学习等领域。那么新手应该如何学习python爬虫呢?以下是Python爬虫的基础知识:1......
  • 嵌入式软件架构设计之分层设计
     在实际的项目开发中,项目往往是并行开发的,也就是说硬件设计,底层软件设计,应用软件设计是同步进行的。比如说在开发板上调试模块驱动,在其他平台上调试应用再移植到目前这个平台等。这里又涉及到如何提高嵌入式应用软件的可移植性的问题,这个问题在下一篇博文中专门讲解,敬请期待......
  • Terraform 改善基础架构的十个最佳实践
    Terraform是一种非常流行的开源IaC(基础设施即代码)工具,用于定义和提供完整的基础设施。Terraform于2014年推出,其采用率已在全球范围内快速增长,越来越多的开发人员正在学习Terraform并尝试在其组织中部署基础设施。 如果您已经开始使用Terraform,则必须采用最佳实践来更好......
  • 【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实
    Guava中的Preconditions(前置条件判断)Preconditions(前置条件):让方法调用的前置条件判断更简单。Guava在Preconditions类中提供了若干前置条件判断的实用方法,我们强烈建议在Eclipse中静态导入这些方法。每个方法都有三个变种:当方法没有额外参数时,抛出的异常中不包含错误消息,这会使......
  • 01-Maven基础-简介安装、基本使用(命令)、IDEA配置、(写jar,刷新自动下载)、依赖管理
    文章目录0、Maven1、Maven简介2、Maven安装配置安装配置步骤3、Maven基本使用Maven常用命令Maven生命周期IDEA配置MavenMaven坐标详解IDEA创建Maven项目IDEA导入Maven项目配置Maven-Helper插件(非常实用的小插件)依赖管理使用坐标导入jar包依赖范围0、Maven1......
  • SpringBoot+Vue+Spring Cloud Alibaba 实现大型电商系统【分布式微服务实现】
    前言这篇博客主要记录的是谷粒商城项目的完整开发过程大家想看的话也可以去这里看看:笔记地址传送门后续还会继续维护这个笔记一、项目架构二、技术总和三、开发准备1、开发环境搭建2、工程初始化四、分布式基础篇(全栈开发篇)五、分布式高级篇(微服务架构篇)......
  • 数字电路基础(4)——逻辑门电路
    这一节,我们真正将书本上抽象的东西转换到实际看得见摸得着的电路上,这里我们开始接触半导体电路,为了和模拟电路区分开,我这里将会故意把握以下分寸,弱化模拟部分,突出数字部分,帮助大家理解逻辑门在数字电路中是如何工作,如何组合成复杂逻辑电路的。首先我们在之前的文章中,根据现实的......